{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"map_hetero.ipynb","version":"0.3.2","provenance":[],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"accelerator":"GPU"},"cells":[{"cell_type":"code","metadata":{"id":"xAYPKSFrG8AF","colab_type":"code","outputId":"5ad4f236-f9c2-4f8a-d7e4-f4e40d36df4b","executionInfo":{"status":"ok","timestamp":1558131075240,"user_tz":-60,"elapsed":7799,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":119}},"source":["!pip3 install http://download.pytorch.org/whl/cu92/torch-0.4.1-cp36-cp36m-linux_x86_64.whl\n","!pip3 install torchvision\n","!pip install GPy\n","import pandas as pd\n","import zipfile\n","import urllib.request\n","import os\n","import GPy\n","import time\n","import copy\n","import math\n","import matplotlib.pyplot as plt\n","import numpy as np\n","import torch\n","import torch.nn as nn\n","import torch.nn.functional as F\n","from sklearn.model_selection import KFold\n","from torch.autograd import Variable\n","from torch.optim import Optimizer\n","from torch.optim.sgd import SGD\n","\n","from torchvision import datasets, transforms\n","from torchvision.utils import make_grid\n","from tqdm import tqdm, trange\n","from google.colab import files\n","%config InlineBackend.figure_format = 'svg'"],"execution_count":1,"outputs":[{"output_type":"stream","text":["Requirement already satisfied: GPy in /usr/local/lib/python3.6/dist-packages (1.9.6)\n","Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from GPy) (1.12.0)\n","Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.6/dist-packages (from GPy) (1.2.1)\n","Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.6/dist-packages (from GPy) (1.16.3)\n","Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.6/dist-packages (from GPy) (0.9.5)\n","Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.6/dist-packages (from paramz>=0.9.0->GPy) (4.4.0)\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"1-7dNcVmHA3I","colab_type":"code","outputId":"df66e5d9-f927-4dcd-bd8c-bc38a83d9265","executionInfo":{"status":"ok","timestamp":1558131075241,"user_tz":-60,"elapsed":7785,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"source":["torch.cuda.device(0)\n","torch.cuda.get_device_name(torch.cuda.current_device())"],"execution_count":2,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'Tesla T4'"]},"metadata":{"tags":[]},"execution_count":2}]},{"cell_type":"code","metadata":{"id":"_1S5kt0omQ-N","colab_type":"code","colab":{}},"source":["def to_variable(var=(), cuda=True, volatile=False):\n","    out = []\n","    for v in var:\n","        \n","        if isinstance(v, np.ndarray):\n","            v = torch.from_numpy(v).type(torch.FloatTensor)\n","\n","        if not v.is_cuda and cuda:\n","            v = v.cuda()\n","\n","        if not isinstance(v, Variable):\n","            v = Variable(v, volatile=volatile)\n","\n","        out.append(v)\n","    return out"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"Va8V78eFFsc9","colab_type":"code","colab":{}},"source":["def log_gaussian_loss(output, target, sigma, no_dim):\n","    exponent = -0.5*(target - output)**2/sigma**2\n","    log_coeff = -no_dim*torch.log(sigma)\n","    \n","    return - (log_coeff + exponent).sum()\n","\n","\n","def get_kl_divergence(weights, prior, varpost):\n","    prior_loglik = prior.loglik(weights)\n","    \n","    varpost_loglik = varpost.loglik(weights)\n","    varpost_lik = varpost_loglik.exp()\n","    \n","    return (varpost_lik*(varpost_loglik - prior_loglik)).sum()\n","\n","\n","class gaussian:\n","    def __init__(self, mu, sigma):\n","        self.mu = mu\n","        self.sigma = sigma\n","        \n","    def loglik(self, weights):\n","        exponent = -0.5*(weights - self.mu)**2/self.sigma**2\n","        log_coeff = -0.5*(np.log(2*np.pi) + 2*np.log(self.sigma))\n","        \n","        return (exponent + log_coeff).sum()"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"rPqBGJbPKaxU","colab_type":"code","colab":{}},"source":["class Net(torch.nn.Module):\n","    def __init__(self, n_feature, n_hidden, n_output, learn_rate, weight_decay):\n","        super(Net, self).__init__()\n","        self.layer1 = torch.nn.Linear(n_feature, n_hidden)\n","        self.layer2 = torch.nn.Linear(n_hidden, 2*n_output)\n","        \n","        self.loss_func = log_gaussian_loss\n","        self.optimizer = torch.optim.SGD(self.parameters(), lr=learn_rate, weight_decay=weight_decay)\n","        \n","    def forward(self, x):\n","        x = F.relu(self.layer1(x))\n","        x = self.layer2(x)\n","        return x\n","    \n","    def fit(self, x, y):\n","        x, y = to_variable(var=(x, y), cuda=True)\n","        \n","        # reset gradient and total loss\n","        self.optimizer.zero_grad()\n","        \n","        output = self.forward(x)\n","        loss = self.loss_func(output[:, :1], y, output[:, 1:].exp(), 1)/x.shape[0]\n","        \n","        loss.backward()\n","        self.optimizer.step()\n","\n","        return loss"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"_J_HMo9VJd5C","colab_type":"code","colab":{}},"source":["def eval_ensemble(x, y, ensemble):\n","    \n","    x, y = to_variable(var=(x, y), cuda=True)\n","        \n","    means, stds = [], []\n","    for net in ensemble:\n","        output = net(x)\n","        means.append(output[:, :1, None])\n","        stds.append(output[:, 1:, None].exp())\n","            \n","    means, stds = torch.cat(means, 2), torch.cat(stds, 2)\n","    mean = means.mean(dim=2)\n","    std = (means.var(dim=2) + stds.mean(dim=2)**2)**0.5\n","    loss = log_gaussian_loss(mean, y, std, 1)/len(x)\n","    \n","    rmse = ((mean - y)**2).mean()**0.5\n","\n","    return loss, rmse"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"ym6HBK-s8GnO","colab_type":"code","outputId":"dd0de23a-2379-4318-c98b-3cd285293623","executionInfo":{"status":"ok","timestamp":1558131088802,"user_tz":-60,"elapsed":21149,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":867}},"source":["np.random.seed(2)\n","no_points = 400\n","lengthscale = 1\n","variance = 1.0\n","sig_noise = 0.3\n","x = np.random.uniform(-3, 3, no_points)[:, None]\n","x.sort(axis = 0)\n","\n","\n","k = GPy.kern.RBF(input_dim = 1, variance=variance, lengthscale=lengthscale)\n","C = k.K(x, x) + np.eye(no_points)*(x + 2)**2*sig_noise**2\n","\n","y = np.random.multivariate_normal(np.zeros((no_points)), C)[:, None]\n","y = (y - y.mean())\n","x_train = x[75:325]\n","y_train = y[75:325]\n","\n","\n","nb_epochs, batch_size = 1000, len(x_train)\n","\n","fit_loss_train = np.zeros(nb_epochs)\n","best_net, best_loss = None, float('inf')\n","num_nets, nets, losses = 10, [], []\n","\n","for n in range(num_nets):\n","    net = Net(n_feature=1, n_hidden=200, n_output=1, learn_rate=1e-2, weight_decay=1e-1).cuda()\n","    \n","    sub_idx = np.random.choice(np.arange(0, len(x_train)), size = (int(len(x_train)*0.5),), replace=True)\n","    x_train_sub, y_train_sub = x_train[sub_idx], y_train[sub_idx]\n","    \n","    for i in range(nb_epochs):\n","\n","        loss = net.fit(x_train_sub, y_train_sub)\n","\n","        if i % 200 == 0:\n","            print('Network %2d, Epoch %4d, Train loss = %6.3f' % (len(nets)+1, i, loss.cpu().data.numpy()))\n","            \n","    nets.append(copy.deepcopy(net))\n","    "],"execution_count":7,"outputs":[{"output_type":"stream","text":["Network  1, Epoch    0, Train loss =  1.398\n","Network  1, Epoch  200, Train loss = -0.072\n","Network  1, Epoch  400, Train loss =  0.041\n","Network  1, Epoch  600, Train loss = -0.088\n","Network  1, Epoch  800, Train loss = -0.259\n","Network  2, Epoch    0, Train loss =  2.977\n","Network  2, Epoch  200, Train loss = -0.063\n","Network  2, Epoch  400, Train loss =  0.440\n","Network  2, Epoch  600, Train loss =  0.008\n","Network  2, Epoch  800, Train loss = -0.273\n","Network  3, Epoch    0, Train loss =  1.500\n","Network  3, Epoch  200, Train loss =  0.138\n","Network  3, Epoch  400, Train loss =  0.007\n","Network  3, Epoch  600, Train loss = -0.075\n","Network  3, Epoch  800, Train loss = -0.124\n","Network  4, Epoch    0, Train loss =  1.840\n","Network  4, Epoch  200, Train loss = -0.044\n","Network  4, Epoch  400, Train loss = -0.209\n","Network  4, Epoch  600, Train loss = -0.253\n","Network  4, Epoch  800, Train loss = -0.275\n","Network  5, Epoch    0, Train loss =  2.059\n","Network  5, Epoch  200, Train loss =  0.016\n","Network  5, Epoch  400, Train loss = -0.025\n","Network  5, Epoch  600, Train loss = -0.097\n","Network  5, Epoch  800, Train loss = -0.099\n","Network  6, Epoch    0, Train loss =  1.658\n","Network  6, Epoch  200, Train loss = -0.032\n","Network  6, Epoch  400, Train loss = -0.029\n","Network  6, Epoch  600, Train loss = -0.210\n","Network  6, Epoch  800, Train loss = -0.273\n","Network  7, Epoch    0, Train loss =  1.858\n","Network  7, Epoch  200, Train loss =  0.387\n","Network  7, Epoch  400, Train loss =  0.388\n","Network  7, Epoch  600, Train loss = -0.118\n","Network  7, Epoch  800, Train loss = -0.119\n","Network  8, Epoch    0, Train loss =  2.279\n","Network  8, Epoch  200, Train loss =  0.034\n","Network  8, Epoch  400, Train loss =  0.128\n","Network  8, Epoch  600, Train loss = -0.120\n","Network  8, Epoch  800, Train loss = -0.071\n","Network  9, Epoch    0, Train loss =  1.522\n","Network  9, Epoch  200, Train loss =  1.317\n","Network  9, Epoch  400, Train loss = -0.268\n","Network  9, Epoch  600, Train loss = -0.233\n","Network  9, Epoch  800, Train loss = -0.321\n","Network 10, Epoch    0, Train loss =  0.915\n","Network 10, Epoch  200, Train loss =  0.287\n","Network 10, Epoch  400, Train loss = -0.191\n","Network 10, Epoch  600, Train loss = -0.193\n","Network 10, Epoch  800, Train loss = -0.209\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"14Zvx-vNrQcD","colab_type":"code","outputId":"bd2b82c6-2218-409a-d907-ef48ba945aee","executionInfo":{"status":"ok","timestamp":1558131092829,"user_tz":-60,"elapsed":24316,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":543}},"source":["values, noises = [], []\n","for net in nets:\n","    preds = net(torch.linspace(-5, 5, 200)[:, None].cuda())\n","    values.append(preds[:, 0].cpu().data.numpy())\n","    noises.append(preds[:, 1].exp().cpu().data.numpy())\n","      \n","values = np.array(values).reshape(num_nets, 200)\n","means, epistemic = values.mean(axis = 0), values.var(axis = 0)**0.5\n","noises = np.array(noises)\n","aleatoric = (noises**2).mean(axis = 0)**0.5\n","\n","total_unc = (aleatoric**2 + epistemic**2)**0.5\n","\n","c = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd',\n","     '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']\n","\n","plt.figure(figsize = (6, 5))\n","plt.style.use('default')\n","plt.scatter(x_train, y_train, s = 10, marker = 'x', color = 'black', alpha = 0.5)\n","plt.fill_between(np.linspace(-5, 5, 200), means + aleatoric, means + total_unc, color = c[0], alpha = 0.3, label = r\"$\\sigma(y'|x')$\")\n","plt.fill_between(np.linspace(-5, 5, 200), means - total_unc, means - aleatoric, color = c[0], alpha = 0.3)\n","plt.fill_between(np.linspace(-5, 5, 200), means - aleatoric, means + aleatoric, color = c[1], alpha = 0.4, label = r'$\\mathbb{E}_{q(\\mathbf{w})}[\\sigma^2]^{1/2}$')\n","plt.plot(np.linspace(-5, 5, 200), means, color = 'black', linewidth = 1)\n","plt.xlim([-5, 5])\n","plt.ylim([-5, 7])\n","plt.xlabel('$x$', fontsize=30)\n","plt.title('MAP Ensemble', fontsize=40)\n","plt.tick_params(labelsize=30)\n","plt.xticks(np.arange(-4, 5, 2))\n","plt.yticks(np.arange(-4, 7, 2))\n","plt.gca().yaxis.grid(alpha=0.3)\n","plt.gca().xaxis.grid(alpha=0.3)\n","plt.legend(loc = 2, fontsize = 22, frameon=False)\n","plt.savefig('map_hetero.pdf', bbox_inches = 'tight')\n","\n","files.download(\"map_hetero.pdf\")\n","\n","plt.show()"],"execution_count":8,"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 432x360 with 1 Axes>"],"image/svg+xml":"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"391.6625pt\" version=\"1.1\" viewBox=\"0 0 403.926562 391.6625\" width=\"403.926562pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 391.6625 \nL 403.926562 391.6625 \nL 403.926562 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 58.426563 315.39375 \nL 393.226562 315.39375 \nL 393.226562 43.59375 \nL 58.426563 43.59375 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"PathCollection_1\">\n    <defs>\n     <path d=\"M -1.581139 1.581139 \nL 1.581139 -1.581139 \nM -1.581139 -1.581139 \nL 1.581139 1.581139 \n\" id=\"mdab58c6e55\" style=\"stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\"/>\n    </defs>\n    <g clip-path=\"url(#p3f8296397e)\">\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"163.008684\" xlink:href=\"#mdab58c6e55\" y=\"183.745982\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"164.516847\" xlink:href=\"#mdab58c6e55\" y=\"181.154163\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"164.952755\" xlink:href=\"#mdab58c6e55\" y=\"184.310171\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"165.166249\" xlink:href=\"#mdab58c6e55\" y=\"180.988587\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"165.341412\" xlink:href=\"#mdab58c6e55\" y=\"183.568276\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"165.731773\" xlink:href=\"#mdab58c6e55\" y=\"182.96171\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"165.912742\" xlink:href=\"#mdab58c6e55\" y=\"181.213327\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"166.094704\" xlink:href=\"#mdab58c6e55\" y=\"182.115454\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"166.49638\" xlink:href=\"#mdab58c6e55\" y=\"181.782198\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"166.726396\" xlink:href=\"#mdab58c6e55\" y=\"176.162515\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"166.787455\" xlink:href=\"#mdab58c6e55\" y=\"180.492926\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"166.978734\" xlink:href=\"#mdab58c6e55\" y=\"181.48031\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"167.270544\" xlink:href=\"#mdab58c6e55\" y=\"181.751128\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"167.892285\" xlink:href=\"#mdab58c6e55\" y=\"176.093525\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"168.502591\" xlink:href=\"#mdab58c6e55\" y=\"180.846384\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"168.560573\" xlink:href=\"#mdab58c6e55\" y=\"178.993687\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"169.058362\" xlink:href=\"#mdab58c6e55\" y=\"176.725288\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"169.343282\" xlink:href=\"#mdab58c6e55\" y=\"177.550133\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"169.638395\" xlink:href=\"#mdab58c6e55\" y=\"178.08241\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"169.641673\" xlink:href=\"#mdab58c6e55\" y=\"179.677994\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"169.748483\" xlink:href=\"#mdab58c6e55\" y=\"179.702639\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"169.757182\" xlink:href=\"#mdab58c6e55\" y=\"175.781693\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"170.787853\" xlink:href=\"#mdab58c6e55\" y=\"174.194523\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"171.30979\" xlink:href=\"#mdab58c6e55\" y=\"176.44688\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"171.503393\" xlink:href=\"#mdab58c6e55\" y=\"177.609507\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"172.014477\" xlink:href=\"#mdab58c6e55\" y=\"175.176823\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"174.600985\" xlink:href=\"#mdab58c6e55\" y=\"171.573863\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"174.765109\" xlink:href=\"#mdab58c6e55\" y=\"171.20321\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"174.853983\" xlink:href=\"#mdab58c6e55\" y=\"170.062427\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"175.039526\" xlink:href=\"#mdab58c6e55\" y=\"177.288324\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"175.114582\" xlink:href=\"#mdab58c6e55\" y=\"168.852561\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"175.352306\" xlink:href=\"#mdab58c6e55\" y=\"166.738285\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"175.864276\" xlink:href=\"#mdab58c6e55\" y=\"174.691756\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"176.319338\" xlink:href=\"#mdab58c6e55\" y=\"173.46327\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"176.45562\" xlink:href=\"#mdab58c6e55\" y=\"175.720468\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"177.510986\" xlink:href=\"#mdab58c6e55\" y=\"167.604738\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"177.564088\" xlink:href=\"#mdab58c6e55\" y=\"174.137305\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"177.76\" xlink:href=\"#mdab58c6e55\" y=\"171.268401\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"178.374393\" xlink:href=\"#mdab58c6e55\" y=\"166.510209\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"178.708847\" xlink:href=\"#mdab58c6e55\" y=\"165.631396\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"178.946372\" xlink:href=\"#mdab58c6e55\" y=\"169.444306\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"178.986826\" xlink:href=\"#mdab58c6e55\" y=\"170.082017\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"179.501384\" xlink:href=\"#mdab58c6e55\" y=\"165.410918\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"180.439585\" xlink:href=\"#mdab58c6e55\" y=\"168.101764\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"181.686856\" xlink:href=\"#mdab58c6e55\" y=\"170.030795\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"182.287579\" xlink:href=\"#mdab58c6e55\" y=\"172.194311\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"182.387429\" xlink:href=\"#mdab58c6e55\" y=\"166.390854\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"182.758641\" xlink:href=\"#mdab58c6e55\" y=\"159.899565\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"183.166733\" xlink:href=\"#mdab58c6e55\" y=\"167.325476\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"183.576575\" xlink:href=\"#mdab58c6e55\" y=\"161.393727\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"183.727487\" xlink:href=\"#mdab58c6e55\" y=\"168.388002\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"183.910483\" xlink:href=\"#mdab58c6e55\" y=\"167.815095\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"184.249069\" xlink:href=\"#mdab58c6e55\" y=\"166.914173\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"184.680775\" xlink:href=\"#mdab58c6e55\" y=\"165.173777\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"184.950044\" xlink:href=\"#mdab58c6e55\" y=\"162.354901\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"185.581193\" xlink:href=\"#mdab58c6e55\" y=\"175.640001\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"185.773458\" xlink:href=\"#mdab58c6e55\" y=\"165.574169\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"186.929098\" xlink:href=\"#mdab58c6e55\" y=\"166.582803\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"187.379924\" xlink:href=\"#mdab58c6e55\" y=\"155.918683\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"187.966589\" xlink:href=\"#mdab58c6e55\" y=\"162.644304\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"188.313936\" xlink:href=\"#mdab58c6e55\" y=\"165.95634\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"190.376971\" xlink:href=\"#mdab58c6e55\" y=\"167.997065\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"190.379542\" xlink:href=\"#mdab58c6e55\" y=\"164.576319\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"190.421579\" xlink:href=\"#mdab58c6e55\" y=\"171.364599\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"190.683973\" xlink:href=\"#mdab58c6e55\" y=\"153.369613\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"190.99162\" xlink:href=\"#mdab58c6e55\" y=\"156.652414\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"191.153506\" xlink:href=\"#mdab58c6e55\" y=\"160.592024\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"191.744221\" xlink:href=\"#mdab58c6e55\" y=\"168.698984\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"191.827025\" xlink:href=\"#mdab58c6e55\" y=\"159.122172\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"192.053354\" xlink:href=\"#mdab58c6e55\" y=\"163.735925\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"192.231383\" xlink:href=\"#mdab58c6e55\" y=\"163.038622\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"193.157105\" xlink:href=\"#mdab58c6e55\" y=\"164.648595\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"193.928819\" xlink:href=\"#mdab58c6e55\" y=\"158.323096\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"194.009913\" xlink:href=\"#mdab58c6e55\" y=\"161.186012\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"194.686137\" xlink:href=\"#mdab58c6e55\" y=\"164.569631\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"194.938834\" xlink:href=\"#mdab58c6e55\" y=\"158.832573\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"195.0176\" xlink:href=\"#mdab58c6e55\" y=\"160.006427\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"195.494012\" xlink:href=\"#mdab58c6e55\" y=\"167.822832\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"195.659667\" xlink:href=\"#mdab58c6e55\" y=\"158.119806\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"195.86971\" xlink:href=\"#mdab58c6e55\" y=\"151.376866\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"196.340169\" xlink:href=\"#mdab58c6e55\" y=\"165.572564\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"197.025248\" xlink:href=\"#mdab58c6e55\" y=\"148.108487\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"197.127828\" xlink:href=\"#mdab58c6e55\" y=\"154.65154\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"197.204825\" xlink:href=\"#mdab58c6e55\" y=\"159.673591\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"198.977424\" xlink:href=\"#mdab58c6e55\" y=\"164.295913\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"199.967515\" xlink:href=\"#mdab58c6e55\" y=\"160.157799\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"200.293285\" xlink:href=\"#mdab58c6e55\" y=\"159.293898\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"200.793186\" xlink:href=\"#mdab58c6e55\" y=\"176.356816\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"201.319686\" xlink:href=\"#mdab58c6e55\" y=\"158.017565\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"201.562381\" xlink:href=\"#mdab58c6e55\" y=\"172.028476\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"201.880177\" xlink:href=\"#mdab58c6e55\" y=\"170.0426\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"203.001718\" xlink:href=\"#mdab58c6e55\" y=\"181.30107\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"203.105003\" xlink:href=\"#mdab58c6e55\" y=\"178.633338\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"203.105558\" xlink:href=\"#mdab58c6e55\" y=\"175.783962\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"203.107103\" xlink:href=\"#mdab58c6e55\" y=\"167.820451\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"203.232268\" xlink:href=\"#mdab58c6e55\" y=\"175.108909\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"203.395133\" xlink:href=\"#mdab58c6e55\" y=\"175.215663\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"204.764447\" xlink:href=\"#mdab58c6e55\" y=\"191.288518\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"206.268468\" xlink:href=\"#mdab58c6e55\" y=\"172.137137\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"206.999093\" xlink:href=\"#mdab58c6e55\" y=\"196.848898\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"208.643298\" xlink:href=\"#mdab58c6e55\" y=\"179.662366\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"208.647154\" xlink:href=\"#mdab58c6e55\" y=\"192.764617\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"208.685122\" xlink:href=\"#mdab58c6e55\" y=\"189.346291\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"208.732847\" xlink:href=\"#mdab58c6e55\" y=\"179.891789\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"209.103994\" xlink:href=\"#mdab58c6e55\" y=\"169.730086\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"209.321507\" xlink:href=\"#mdab58c6e55\" y=\"200.2609\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"209.703022\" xlink:href=\"#mdab58c6e55\" y=\"169.416664\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"209.830047\" xlink:href=\"#mdab58c6e55\" y=\"157.326407\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"210.834344\" xlink:href=\"#mdab58c6e55\" y=\"184.28758\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"211.271996\" xlink:href=\"#mdab58c6e55\" y=\"162.680204\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"211.387776\" xlink:href=\"#mdab58c6e55\" y=\"196.596315\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"211.471734\" xlink:href=\"#mdab58c6e55\" y=\"193.33812\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"211.682324\" xlink:href=\"#mdab58c6e55\" y=\"182.784141\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"212.244884\" xlink:href=\"#mdab58c6e55\" y=\"180.68964\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"212.786166\" xlink:href=\"#mdab58c6e55\" y=\"182.782655\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"212.834125\" xlink:href=\"#mdab58c6e55\" y=\"196.650664\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"212.969218\" xlink:href=\"#mdab58c6e55\" y=\"188.227081\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"213.104808\" xlink:href=\"#mdab58c6e55\" y=\"197.454641\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"213.120353\" xlink:href=\"#mdab58c6e55\" y=\"187.583212\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"214.045939\" xlink:href=\"#mdab58c6e55\" y=\"212.806736\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"214.691973\" xlink:href=\"#mdab58c6e55\" y=\"215.323445\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"214.692641\" xlink:href=\"#mdab58c6e55\" y=\"205.136809\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"215.383759\" xlink:href=\"#mdab58c6e55\" y=\"175.632516\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"215.828198\" xlink:href=\"#mdab58c6e55\" y=\"186.316011\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"218.140674\" xlink:href=\"#mdab58c6e55\" y=\"189.260035\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"218.484249\" xlink:href=\"#mdab58c6e55\" y=\"211.491526\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"218.637539\" xlink:href=\"#mdab58c6e55\" y=\"199.685227\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"219.355712\" xlink:href=\"#mdab58c6e55\" y=\"178.349507\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"220.083375\" xlink:href=\"#mdab58c6e55\" y=\"197.098183\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"220.243824\" xlink:href=\"#mdab58c6e55\" y=\"214.894923\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"221.354241\" xlink:href=\"#mdab58c6e55\" y=\"221.455055\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"222.101878\" xlink:href=\"#mdab58c6e55\" y=\"203.916393\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"222.425631\" xlink:href=\"#mdab58c6e55\" y=\"232.52465\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"223.67035\" xlink:href=\"#mdab58c6e55\" y=\"199.166009\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"223.677405\" xlink:href=\"#mdab58c6e55\" y=\"200.526081\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"224.243447\" xlink:href=\"#mdab58c6e55\" y=\"205.169629\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"224.668858\" xlink:href=\"#mdab58c6e55\" y=\"221.375549\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"225.169183\" xlink:href=\"#mdab58c6e55\" y=\"240.354844\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"225.238747\" xlink:href=\"#mdab58c6e55\" y=\"205.81423\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"225.828242\" xlink:href=\"#mdab58c6e55\" y=\"186.644896\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.070923\" xlink:href=\"#mdab58c6e55\" y=\"209.250242\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.384758\" xlink:href=\"#mdab58c6e55\" y=\"214.547905\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.430563\" xlink:href=\"#mdab58c6e55\" y=\"212.517677\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.630171\" xlink:href=\"#mdab58c6e55\" y=\"228.258754\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.843401\" xlink:href=\"#mdab58c6e55\" y=\"233.612599\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.878515\" xlink:href=\"#mdab58c6e55\" y=\"199.407735\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"226.880397\" xlink:href=\"#mdab58c6e55\" y=\"228.485579\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"227.049286\" xlink:href=\"#mdab58c6e55\" y=\"218.177785\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"227.356763\" xlink:href=\"#mdab58c6e55\" y=\"244.578682\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"228.554135\" xlink:href=\"#mdab58c6e55\" y=\"229.276135\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"228.719648\" xlink:href=\"#mdab58c6e55\" y=\"225.244876\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"230.480817\" xlink:href=\"#mdab58c6e55\" y=\"241.890866\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"230.661116\" xlink:href=\"#mdab58c6e55\" y=\"232.739995\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"230.995858\" xlink:href=\"#mdab58c6e55\" y=\"243.679858\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"231.177689\" xlink:href=\"#mdab58c6e55\" y=\"225.35709\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"231.680626\" xlink:href=\"#mdab58c6e55\" y=\"208.92388\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"232.676912\" xlink:href=\"#mdab58c6e55\" y=\"217.664911\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"232.978729\" xlink:href=\"#mdab58c6e55\" y=\"267.985189\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"233.127239\" xlink:href=\"#mdab58c6e55\" y=\"243.595919\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"233.900234\" xlink:href=\"#mdab58c6e55\" y=\"223.372485\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"234.533752\" xlink:href=\"#mdab58c6e55\" y=\"226.273183\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"234.707098\" xlink:href=\"#mdab58c6e55\" y=\"241.722084\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"235.450277\" xlink:href=\"#mdab58c6e55\" y=\"229.501168\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"235.769484\" xlink:href=\"#mdab58c6e55\" y=\"269.10302\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"235.802761\" xlink:href=\"#mdab58c6e55\" y=\"233.383498\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"236.067004\" xlink:href=\"#mdab58c6e55\" y=\"268.892868\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"237.248633\" xlink:href=\"#mdab58c6e55\" y=\"237.629011\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"237.668598\" xlink:href=\"#mdab58c6e55\" y=\"229.669792\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"238.557556\" xlink:href=\"#mdab58c6e55\" y=\"239.188154\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"239.314475\" xlink:href=\"#mdab58c6e55\" y=\"218.562259\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"239.715513\" xlink:href=\"#mdab58c6e55\" y=\"284.985775\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"239.943246\" xlink:href=\"#mdab58c6e55\" y=\"235.375936\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"240.453095\" xlink:href=\"#mdab58c6e55\" y=\"233.553427\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"241.897802\" xlink:href=\"#mdab58c6e55\" y=\"245.758913\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"242.436303\" xlink:href=\"#mdab58c6e55\" y=\"252.135443\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"243.861969\" xlink:href=\"#mdab58c6e55\" y=\"241.368148\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"244.15834\" xlink:href=\"#mdab58c6e55\" y=\"240.539571\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"244.324512\" xlink:href=\"#mdab58c6e55\" y=\"258.046212\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"245.26076\" xlink:href=\"#mdab58c6e55\" y=\"278.541079\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"245.315247\" xlink:href=\"#mdab58c6e55\" y=\"258.636908\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"246.279586\" xlink:href=\"#mdab58c6e55\" y=\"235.23151\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"247.610423\" xlink:href=\"#mdab58c6e55\" y=\"287.641248\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"247.708451\" xlink:href=\"#mdab58c6e55\" y=\"276.757836\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"248.142181\" xlink:href=\"#mdab58c6e55\" y=\"244.422377\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"248.978901\" xlink:href=\"#mdab58c6e55\" y=\"243.37309\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"249.785714\" xlink:href=\"#mdab58c6e55\" y=\"221.544045\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"249.86014\" xlink:href=\"#mdab58c6e55\" y=\"256.876558\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"250.159927\" xlink:href=\"#mdab58c6e55\" y=\"226.539705\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"250.612084\" xlink:href=\"#mdab58c6e55\" y=\"258.520946\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"250.647935\" xlink:href=\"#mdab58c6e55\" y=\"261.899154\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"251.206537\" xlink:href=\"#mdab58c6e55\" y=\"229.375199\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"251.741982\" xlink:href=\"#mdab58c6e55\" y=\"265.651291\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"251.812344\" xlink:href=\"#mdab58c6e55\" y=\"257.576941\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.031465\" xlink:href=\"#mdab58c6e55\" y=\"239.776319\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.138316\" xlink:href=\"#mdab58c6e55\" y=\"247.332661\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.31371\" xlink:href=\"#mdab58c6e55\" y=\"240.68831\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.442404\" xlink:href=\"#mdab58c6e55\" y=\"241.050691\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.614962\" xlink:href=\"#mdab58c6e55\" y=\"292.666154\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.72153\" xlink:href=\"#mdab58c6e55\" y=\"262.811567\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"254.858983\" xlink:href=\"#mdab58c6e55\" y=\"252.569244\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"256.542511\" xlink:href=\"#mdab58c6e55\" y=\"270.478986\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"256.565323\" xlink:href=\"#mdab58c6e55\" y=\"262.642727\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"257.467651\" xlink:href=\"#mdab58c6e55\" y=\"300.852771\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"258.264931\" xlink:href=\"#mdab58c6e55\" y=\"261.429675\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"258.362652\" xlink:href=\"#mdab58c6e55\" y=\"255.302171\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"258.409704\" xlink:href=\"#mdab58c6e55\" y=\"234.67324\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"259.594357\" xlink:href=\"#mdab58c6e55\" y=\"235.473545\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"259.660188\" xlink:href=\"#mdab58c6e55\" y=\"257.130781\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"261.499805\" xlink:href=\"#mdab58c6e55\" y=\"245.910672\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"261.667875\" xlink:href=\"#mdab58c6e55\" y=\"291.836943\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"263.843479\" xlink:href=\"#mdab58c6e55\" y=\"274.84276\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"264.475723\" xlink:href=\"#mdab58c6e55\" y=\"228.864738\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"264.663462\" xlink:href=\"#mdab58c6e55\" y=\"270.359863\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"264.827926\" xlink:href=\"#mdab58c6e55\" y=\"242.042929\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"264.845317\" xlink:href=\"#mdab58c6e55\" y=\"234.969813\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"265.906265\" xlink:href=\"#mdab58c6e55\" y=\"248.678638\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"266.153694\" xlink:href=\"#mdab58c6e55\" y=\"250.480371\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"266.457403\" xlink:href=\"#mdab58c6e55\" y=\"273.962201\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"266.932135\" xlink:href=\"#mdab58c6e55\" y=\"239.259336\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"267.10801\" xlink:href=\"#mdab58c6e55\" y=\"241.50959\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"267.603811\" xlink:href=\"#mdab58c6e55\" y=\"245.602955\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"268.615468\" xlink:href=\"#mdab58c6e55\" y=\"252.298505\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"268.652564\" xlink:href=\"#mdab58c6e55\" y=\"282.320678\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"268.678598\" xlink:href=\"#mdab58c6e55\" y=\"248.952264\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"269.162523\" xlink:href=\"#mdab58c6e55\" y=\"268.543346\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"269.165837\" xlink:href=\"#mdab58c6e55\" y=\"259.222848\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"269.957395\" xlink:href=\"#mdab58c6e55\" y=\"255.137645\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"271.828244\" xlink:href=\"#mdab58c6e55\" y=\"257.997501\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"272.165601\" xlink:href=\"#mdab58c6e55\" y=\"224.457793\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"272.766152\" xlink:href=\"#mdab58c6e55\" y=\"254.807236\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"273.384311\" xlink:href=\"#mdab58c6e55\" y=\"231.628853\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"273.716306\" xlink:href=\"#mdab58c6e55\" y=\"211.816339\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"274.390315\" xlink:href=\"#mdab58c6e55\" y=\"226.799433\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"275.719931\" xlink:href=\"#mdab58c6e55\" y=\"217.284043\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"275.801063\" xlink:href=\"#mdab58c6e55\" y=\"257.777103\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"278.524466\" xlink:href=\"#mdab58c6e55\" y=\"234.079812\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"279.051699\" xlink:href=\"#mdab58c6e55\" y=\"226.049533\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"280.03597\" xlink:href=\"#mdab58c6e55\" y=\"241.547987\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"281.228847\" xlink:href=\"#mdab58c6e55\" y=\"185.910504\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"281.381772\" xlink:href=\"#mdab58c6e55\" y=\"209.474146\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"281.491013\" xlink:href=\"#mdab58c6e55\" y=\"168.329657\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"281.588422\" xlink:href=\"#mdab58c6e55\" y=\"184.317828\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"281.672842\" xlink:href=\"#mdab58c6e55\" y=\"203.349526\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"282.406308\" xlink:href=\"#mdab58c6e55\" y=\"229.016515\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"283.144687\" xlink:href=\"#mdab58c6e55\" y=\"238.103036\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"283.237637\" xlink:href=\"#mdab58c6e55\" y=\"222.431073\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"284.130738\" xlink:href=\"#mdab58c6e55\" y=\"242.873144\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"284.549857\" xlink:href=\"#mdab58c6e55\" y=\"200.763065\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"284.812454\" xlink:href=\"#mdab58c6e55\" y=\"170.92805\"/>\n     <use style=\"fill-opacity:0.5;stroke:#000000;stroke-opacity:0.5;stroke-width:1.5;\" x=\"285.569267\" xlink:href=\"#mdab58c6e55\" y=\"205.72178\"/>\n    </g>\n   </g>\n   <g id=\"PolyCollection_1\">\n    <defs>\n     <path d=\"M 58.426562 -159.18564 \nL 58.426562 -151.328758 \nL 60.108975 -152.279859 \nL 61.791387 -153.232548 \nL 63.473799 -154.185977 \nL 65.156211 -155.139906 \nL 66.838623 -156.094234 \nL 68.521035 -157.048988 \nL 70.203447 -158.004059 \nL 71.885859 -158.959551 \nL 73.568271 -159.915388 \nL 75.250683 -160.871679 \nL 76.933095 -161.828599 \nL 78.615507 -162.786054 \nL 80.297919 -163.744124 \nL 81.980331 -164.703007 \nL 83.662743 -165.662633 \nL 85.345155 -166.623217 \nL 87.027568 -167.584574 \nL 88.70998 -168.546647 \nL 90.392392 -169.50943 \nL 92.074804 -170.472867 \nL 93.757216 -171.437821 \nL 95.439628 -172.404145 \nL 97.12204 -173.371378 \nL 98.804452 -174.339731 \nL 100.486864 -175.309631 \nL 102.169276 -176.280772 \nL 103.851688 -177.253157 \nL 105.5341 -178.227153 \nL 107.216512 -179.20322 \nL 108.898924 -180.180902 \nL 110.581336 -181.159978 \nL 112.263748 -182.14076 \nL 113.94616 -183.123705 \nL 115.628573 -184.109095 \nL 117.310985 -185.096798 \nL 118.993397 -186.086698 \nL 120.675809 -187.078459 \nL 122.358221 -188.072143 \nL 124.040633 -189.068186 \nL 125.723045 -190.067067 \nL 127.405457 -191.068456 \nL 129.087869 -192.072751 \nL 130.770281 -193.079908 \nL 132.452693 -194.090746 \nL 134.135105 -195.104198 \nL 135.817517 -196.1205 \nL 137.499929 -197.139954 \nL 139.182341 -198.16366 \nL 140.864753 -199.191195 \nL 142.547166 -200.222351 \nL 144.229578 -201.257988 \nL 145.91199 -202.298775 \nL 147.594402 -203.346093 \nL 149.276814 -204.397698 \nL 150.959226 -205.454584 \nL 152.641638 -206.516543 \nL 154.32405 -207.58555 \nL 156.006462 -208.661612 \nL 157.688874 -209.744771 \nL 159.371286 -210.836014 \nL 161.053698 -211.936527 \nL 162.73611 -213.046471 \nL 164.418522 -214.171796 \nL 166.100934 -215.309776 \nL 167.783346 -216.455724 \nL 169.465758 -217.609119 \nL 171.148171 -218.770239 \nL 172.830583 -219.939467 \nL 174.512995 -221.11723 \nL 176.195407 -222.303969 \nL 177.877819 -223.500133 \nL 179.560231 -224.705653 \nL 181.242643 -225.921404 \nL 182.925055 -227.148128 \nL 184.607467 -228.386414 \nL 186.289879 -229.636842 \nL 187.972291 -230.894514 \nL 189.654703 -232.147008 \nL 191.337115 -233.368666 \nL 193.019527 -234.424313 \nL 194.701939 -235.217823 \nL 196.384351 -234.967649 \nL 198.066764 -233.183834 \nL 199.749176 -231.016051 \nL 201.431588 -228.769278 \nL 203.114 -226.486303 \nL 204.796412 -224.17576 \nL 206.478824 -221.844448 \nL 208.161236 -219.503905 \nL 209.843648 -217.127272 \nL 211.52606 -214.728663 \nL 213.208472 -212.32606 \nL 214.890884 -209.916245 \nL 216.573296 -207.495728 \nL 218.255708 -205.076306 \nL 219.93812 -202.666653 \nL 221.620532 -200.261001 \nL 223.302944 -197.867434 \nL 224.985356 -195.490466 \nL 226.667769 -193.13586 \nL 228.350181 -190.817566 \nL 230.032593 -188.54277 \nL 231.715005 -186.33896 \nL 233.397417 -184.213126 \nL 235.079829 -182.17587 \nL 236.762241 -180.227994 \nL 238.444653 -178.392508 \nL 240.127065 -176.649938 \nL 241.809477 -175.014053 \nL 243.491889 -173.550652 \nL 245.174301 -172.230255 \nL 246.856713 -171.071271 \nL 248.539125 -170.093772 \nL 250.221537 -169.306266 \nL 251.903949 -168.721398 \nL 253.586361 -168.281081 \nL 255.268774 -167.957189 \nL 256.951186 -167.745199 \nL 258.633598 -167.617393 \nL 260.31601 -167.568751 \nL 261.998422 -167.575604 \nL 263.680834 -167.637927 \nL 265.363246 -167.745313 \nL 267.045658 -167.90312 \nL 268.72807 -168.101222 \nL 270.410482 -168.343993 \nL 272.092894 -168.630529 \nL 273.775306 -168.959371 \nL 275.457718 -169.330077 \nL 277.14013 -169.740858 \nL 278.822542 -170.195326 \nL 280.504954 -170.694824 \nL 282.187367 -171.230533 \nL 283.869779 -171.803684 \nL 285.552191 -172.394895 \nL 287.234603 -172.991748 \nL 288.917015 -173.629042 \nL 290.599427 -174.309268 \nL 292.281839 -175.032797 \nL 293.964251 -175.803085 \nL 295.646663 -176.625192 \nL 297.329075 -177.496619 \nL 299.011487 -178.412479 \nL 300.693899 -179.379738 \nL 302.376311 -180.398649 \nL 304.058723 -181.471077 \nL 305.741135 -182.602328 \nL 307.423547 -183.792242 \nL 309.105959 -185.04193 \nL 310.788372 -186.35318 \nL 312.470784 -187.7296 \nL 314.153196 -189.170001 \nL 315.835608 -190.673795 \nL 317.51802 -192.24339 \nL 319.200432 -193.884056 \nL 320.882844 -195.602626 \nL 322.565256 -197.400125 \nL 324.247668 -199.276418 \nL 325.93008 -201.234863 \nL 327.612492 -203.279896 \nL 329.294904 -205.41584 \nL 330.977316 -207.64592 \nL 332.659728 -209.970768 \nL 334.34214 -212.397934 \nL 336.024552 -214.924846 \nL 337.706965 -217.55671 \nL 339.389377 -220.30139 \nL 341.071789 -223.156709 \nL 342.754201 -226.125085 \nL 344.436613 -229.210965 \nL 346.119025 -232.425066 \nL 347.801437 -235.768534 \nL 349.483849 -239.248994 \nL 351.166261 -242.869113 \nL 352.848673 -246.633082 \nL 354.531085 -250.54851 \nL 356.213497 -254.621154 \nL 357.895909 -258.856947 \nL 359.578321 -263.25338 \nL 361.260733 -267.818704 \nL 362.943145 -272.56373 \nL 364.625557 -277.494424 \nL 366.30797 -282.600976 \nL 367.990382 -287.905897 \nL 369.672794 -293.41446 \nL 371.355206 -299.132981 \nL 373.037618 -305.070663 \nL 374.72003 -311.230466 \nL 376.402442 -317.627207 \nL 378.084854 -324.267961 \nL 379.767266 -331.159704 \nL 381.449678 -338.312405 \nL 383.13209 -345.732643 \nL 384.814502 -353.431648 \nL 386.496914 -361.420459 \nL 388.179326 -369.708193 \nL 389.861738 -378.308207 \nL 391.54415 -387.231553 \nL 393.226563 -396.489925 \nL 393.226563 -398.009687 \nL 393.226563 -398.009687 \nL 391.54415 -388.767774 \nL 389.861738 -379.860608 \nL 388.179326 -371.276437 \nL 386.496914 -363.004181 \nL 384.814502 -355.03049 \nL 383.13209 -347.346238 \nL 381.449678 -339.940279 \nL 379.767266 -332.801402 \nL 378.084854 -325.922986 \nL 376.402442 -319.295085 \nL 374.72003 -312.910614 \nL 373.037618 -306.762497 \nL 371.355206 -300.83596 \nL 369.672794 -295.128002 \nL 367.990382 -289.629354 \nL 366.30797 -284.333678 \nL 364.625557 -279.23568 \nL 362.943145 -274.312891 \nL 361.260733 -269.575016 \nL 359.578321 -265.016032 \nL 357.895909 -260.625139 \nL 356.213497 -256.394044 \nL 354.531085 -252.325224 \nL 352.848673 -248.412679 \nL 351.166261 -244.650654 \nL 349.483849 -241.031582 \nL 347.801437 -237.551198 \nL 346.119025 -234.20678 \nL 344.436613 -230.990691 \nL 342.754201 -227.901745 \nL 341.071789 -224.929188 \nL 339.389377 -222.068534 \nL 337.706965 -219.317342 \nL 336.024552 -216.677788 \nL 334.34214 -214.142019 \nL 332.659728 -211.70481 \nL 330.977316 -209.368621 \nL 329.294904 -207.125969 \nL 327.612492 -204.976147 \nL 325.93008 -202.915934 \nL 324.247668 -200.940861 \nL 322.565256 -199.046494 \nL 320.882844 -197.229517 \nL 319.200432 -195.490108 \nL 317.51802 -193.827236 \nL 315.835608 -192.234182 \nL 314.153196 -190.705478 \nL 312.470784 -189.238643 \nL 310.788372 -187.834331 \nL 309.105959 -186.493801 \nL 307.423547 -185.213537 \nL 305.741135 -183.991789 \nL 304.058723 -182.827429 \nL 302.376311 -181.720538 \nL 300.693899 -180.66571 \nL 299.011487 -179.660941 \nL 297.329075 -178.706341 \nL 295.646663 -177.794898 \nL 293.964251 -176.931539 \nL 292.281839 -176.119017 \nL 290.599427 -175.352718 \nL 288.917015 -174.62915 \nL 287.234603 -173.947744 \nL 285.552191 -173.306049 \nL 283.869779 -172.668347 \nL 282.187367 -172.046527 \nL 280.504954 -171.461944 \nL 278.822542 -170.913307 \nL 277.14013 -170.409719 \nL 275.457718 -169.950217 \nL 273.775306 -169.531058 \nL 272.092894 -169.154055 \nL 270.410482 -168.820127 \nL 268.72807 -168.531128 \nL 267.045658 -168.288649 \nL 265.363246 -168.089072 \nL 263.680834 -167.941412 \nL 261.998422 -167.841001 \nL 260.31601 -167.798197 \nL 258.633598 -167.813414 \nL 256.951186 -167.911911 \nL 255.268774 -168.097183 \nL 253.586361 -168.400317 \nL 251.903949 -168.826996 \nL 250.221537 -169.406352 \nL 248.539125 -170.196362 \nL 246.856713 -171.17679 \nL 245.174301 -172.336212 \nL 243.491889 -173.652861 \nL 241.809477 -175.11431 \nL 240.127065 -176.756624 \nL 238.444653 -178.511838 \nL 236.762241 -180.35839 \nL 235.079829 -182.312878 \nL 233.397417 -184.354241 \nL 231.715005 -186.484101 \nL 230.032593 -188.690848 \nL 228.350181 -190.964704 \nL 226.667769 -193.280677 \nL 224.985356 -195.632526 \nL 223.302944 -198.006655 \nL 221.620532 -200.397414 \nL 219.93812 -202.79932 \nL 218.255708 -205.204137 \nL 216.573296 -207.618902 \nL 214.890884 -210.033184 \nL 213.208472 -212.43526 \nL 211.52606 -214.831277 \nL 209.843648 -217.225309 \nL 208.161236 -219.598664 \nL 206.478824 -221.937086 \nL 204.796412 -224.270442 \nL 203.114 -226.584314 \nL 201.431588 -228.870877 \nL 199.749176 -231.123803 \nL 198.066764 -233.304296 \nL 196.384351 -235.04215 \nL 194.701939 -235.235541 \nL 193.019527 -234.49826 \nL 191.337115 -233.493581 \nL 189.654703 -232.291625 \nL 187.972291 -231.049019 \nL 186.289879 -229.803985 \nL 184.607467 -228.568319 \nL 182.925055 -227.347902 \nL 181.242643 -226.142463 \nL 179.560231 -224.951745 \nL 177.877819 -223.775372 \nL 176.195407 -222.612902 \nL 174.512995 -221.464602 \nL 172.830583 -220.330324 \nL 171.148171 -219.209895 \nL 169.465758 -218.103133 \nL 167.783346 -217.009839 \nL 166.100934 -215.929949 \nL 164.418522 -214.864067 \nL 162.73611 -213.815487 \nL 161.053698 -212.789001 \nL 159.371286 -211.77809 \nL 157.688874 -210.782579 \nL 156.006462 -209.799804 \nL 154.32405 -208.827761 \nL 152.641638 -207.867239 \nL 150.959226 -206.917053 \nL 149.276814 -205.975133 \nL 147.594402 -205.04306 \nL 145.91199 -204.11859 \nL 144.229578 -203.200045 \nL 142.547166 -202.286669 \nL 140.864753 -201.378924 \nL 139.182341 -200.475977 \nL 137.499929 -199.577956 \nL 135.817517 -198.685532 \nL 134.135105 -197.797027 \nL 132.452693 -196.911846 \nL 130.770281 -196.029253 \nL 129.087869 -195.150768 \nL 127.405457 -194.274705 \nL 125.723045 -193.399893 \nL 124.040633 -192.526824 \nL 122.358221 -191.656124 \nL 120.675809 -190.787029 \nL 118.993397 -189.919303 \nL 117.310985 -189.052951 \nL 115.628573 -188.188163 \nL 113.94616 -187.324766 \nL 112.263748 -186.462782 \nL 110.581336 -185.601893 \nL 108.898924 -184.742058 \nL 107.216512 -183.882924 \nL 105.5341 -183.024632 \nL 103.851688 -182.167028 \nL 102.169276 -181.309962 \nL 100.486864 -180.453435 \nL 98.804452 -179.597451 \nL 97.12204 -178.742256 \nL 95.439628 -177.887552 \nL 93.757216 -177.033203 \nL 92.074804 -176.179904 \nL 90.392392 -175.328241 \nL 88.70998 -174.476509 \nL 87.027568 -173.624816 \nL 85.345155 -172.773271 \nL 83.662743 -171.922061 \nL 81.980331 -171.071751 \nL 80.297919 -170.221649 \nL 78.615507 -169.371828 \nL 76.933095 -168.522221 \nL 75.250683 -167.672726 \nL 73.568271 -166.823437 \nL 71.885859 -165.974175 \nL 70.203447 -165.124859 \nL 68.521035 -164.275648 \nL 66.838623 -163.426537 \nL 65.156211 -162.577507 \nL 63.473799 -161.728528 \nL 61.791387 -160.879701 \nL 60.108975 -160.031619 \nL 58.426562 -159.18564 \nz\n\" id=\"m0f2563c353\" style=\"stroke:#1f77b4;stroke-opacity:0.3;\"/>\n    </defs>\n    <g clip-path=\"url(#p3f8296397e)\">\n     <use style=\"fill:#1f77b4;fill-opacity:0.3;stroke:#1f77b4;stroke-opacity:0.3;\" x=\"0\" xlink:href=\"#m0f2563c353\" y=\"391.6625\"/>\n    </g>\n   </g>\n   <g id=\"PolyCollection_2\">\n    <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426562 240.692115 \nL 58.426562 248.548994 \nL 60.108975 247.508741 \nL 61.791387 246.468126 \nL 63.473799 245.427528 \nL 65.156211 244.38687 \nL 66.838623 243.34629 \nL 68.521035 242.305807 \nL 70.203447 241.265689 \nL 71.885859 240.225785 \nL 73.568271 239.186123 \nL 75.250683 238.146612 \nL 76.933095 237.107123 \nL 78.615507 236.067818 \nL 80.297919 235.028672 \nL 81.980331 233.989424 \nL 83.662743 232.950194 \nL 85.345155 231.911307 \nL 87.027568 230.872634 \nL 88.70998 229.83416 \nL 90.392392 228.795867 \nL 92.074804 227.757834 \nL 93.757216 226.720084 \nL 95.439628 225.682412 \nL 97.12204 224.645152 \nL 98.804452 223.608097 \nL 100.486864 222.570778 \nL 102.169276 221.533661 \nL 103.851688 220.496848 \nL 105.5341 219.459701 \nL 107.216512 218.42158 \nL 108.898924 217.38366 \nL 110.581336 216.346365 \nL 112.263748 215.309553 \nL 113.94616 214.272476 \nL 115.628573 213.235032 \nL 117.310985 212.19761 \nL 118.993397 211.160786 \nL 120.675809 210.125202 \nL 122.358221 209.090907 \nL 124.040633 208.057437 \nL 125.723045 207.024802 \nL 127.405457 205.993212 \nL 129.087869 204.961557 \nL 130.770281 203.93134 \nL 132.452693 202.902866 \nL 134.135105 201.877036 \nL 135.817517 200.854336 \nL 137.499929 199.834978 \nL 139.182341 198.818758 \nL 140.864753 197.806114 \nL 142.547166 196.797658 \nL 144.229578 195.792851 \nL 145.91199 194.790253 \nL 147.594402 193.78838 \nL 149.276814 192.793665 \nL 150.959226 191.806664 \nL 152.641638 190.826578 \nL 154.32405 189.852164 \nL 156.006462 188.885056 \nL 157.688874 187.924889 \nL 159.371286 186.97212 \nL 161.053698 186.027602 \nL 162.73611 185.091784 \nL 164.418522 184.160578 \nL 166.100934 183.234763 \nL 167.783346 182.321106 \nL 169.465758 181.420702 \nL 171.148171 180.533756 \nL 172.830583 179.660486 \nL 174.512995 178.801066 \nL 176.195407 177.955652 \nL 177.877819 177.124423 \nL 179.560231 176.308362 \nL 181.242643 175.507121 \nL 182.925055 174.720606 \nL 184.607467 173.949052 \nL 186.289879 173.19276 \nL 187.972291 172.457444 \nL 189.654703 171.758069 \nL 191.337115 171.107834 \nL 193.019527 170.615583 \nL 194.701939 170.400348 \nL 196.384351 171.360532 \nL 198.066764 173.856685 \nL 199.749176 176.69721 \nL 201.431588 179.646571 \nL 203.114 182.663599 \nL 204.796412 185.737223 \nL 206.478824 188.85671 \nL 208.161236 192.016605 \nL 209.843648 195.238091 \nL 211.52606 198.50537 \nL 213.208472 201.808133 \nL 214.890884 205.140898 \nL 216.573296 208.506347 \nL 218.255708 211.90115 \nL 219.93812 215.312723 \nL 221.620532 218.736888 \nL 223.302944 222.170987 \nL 224.985356 225.617261 \nL 226.667769 229.072502 \nL 228.350181 232.516154 \nL 230.032593 235.934955 \nL 231.715005 239.282619 \nL 233.397417 242.555649 \nL 235.079829 245.73901 \nL 236.762241 248.772767 \nL 238.444653 251.608294 \nL 240.127065 254.339349 \nL 241.809477 256.979756 \nL 243.491889 259.466729 \nL 245.174301 261.798424 \nL 246.856713 263.897334 \nL 248.539125 265.795703 \nL 250.221537 267.497019 \nL 251.903949 269.04922 \nL 253.586361 270.520321 \nL 255.268774 271.953345 \nL 256.951186 273.355135 \nL 258.633598 274.751708 \nL 260.31601 276.154881 \nL 261.998422 277.573076 \nL 263.680834 279.019568 \nL 265.363246 280.500546 \nL 267.045658 282.014692 \nL 268.72807 283.559058 \nL 270.410482 285.13793 \nL 272.092894 286.755803 \nL 273.775306 288.413982 \nL 275.457718 290.109806 \nL 277.14013 291.836817 \nL 278.822542 293.603826 \nL 280.504954 295.414031 \nL 282.187367 297.2537 \nL 283.869779 299.12685 \nL 285.552191 300.999546 \nL 287.234603 302.857943 \nL 288.917015 304.754357 \nL 290.599427 306.690754 \nL 292.281839 308.666205 \nL 293.964251 310.684663 \nL 295.646663 312.752219 \nL 297.329075 314.866779 \nL 299.011487 317.021494 \nL 300.693899 319.225999 \nL 302.376311 321.478868 \nL 304.058723 323.780447 \nL 305.741135 326.139397 \nL 307.423547 328.555524 \nL 309.105959 331.028375 \nL 310.788372 333.559807 \nL 312.470784 336.153287 \nL 314.153196 338.80712 \nL 315.835608 341.519976 \nL 317.51802 344.29433 \nL 319.200432 347.137136 \nL 320.882844 350.055102 \nL 322.565256 353.050064 \nL 324.247668 356.121179 \nL 325.93008 359.271645 \nL 327.612492 362.504863 \nL 329.294904 365.826773 \nL 330.977316 369.240789 \nL 332.659728 372.747018 \nL 334.34214 376.354253 \nL 336.024552 380.058755 \nL 337.706965 383.866228 \nL 339.389377 387.78488 \nL 341.071789 391.812011 \nL 342.754201 395.949046 \nL 344.436613 400.200393 \nL 346.119025 404.578859 \nL 347.801437 409.083669 \nL 349.483849 413.724346 \nL 351.166261 418.50329 \nL 352.848673 423.424022 \nL 354.531085 428.494943 \nL 356.213497 433.721907 \nL 357.895909 439.11118 \nL 359.578321 444.659649 \nL 361.260733 450.375849 \nL 362.943145 456.270686 \nL 364.625557 462.350339 \nL 366.30797 468.604094 \nL 367.990382 475.055086 \nL 369.672794 481.708605 \nL 371.355206 488.570982 \nL 373.037618 495.65131 \nL 374.72003 502.951728 \nL 376.402442 510.488156 \nL 378.084854 518.267873 \nL 379.767266 526.297941 \nL 381.449678 534.588299 \nL 383.13209 543.145037 \nL 384.814502 551.979949 \nL 386.496914 561.104267 \nL 388.179326 570.526934 \nL 389.861738 580.261559 \nL 391.54415 590.319202 \nL 393.226563 600.711483 \nL 393.226563 599.191742 \nL 393.226563 599.191742 \nL 391.54415 588.782958 \nL 389.861738 578.709159 \nL 388.179326 568.958722 \nL 386.496914 559.520545 \nL 384.814502 550.381106 \nL 383.13209 541.531463 \nL 381.449678 532.960425 \nL 379.767266 524.656243 \nL 378.084854 516.612868 \nL 376.402442 508.820278 \nL 374.72003 501.271581 \nL 373.037618 493.959499 \nL 371.355206 486.868003 \nL 369.672794 479.995063 \nL 367.990382 473.331629 \nL 366.30797 466.871392 \nL 364.625557 460.609105 \nL 362.943145 454.521524 \nL 361.260733 448.619537 \nL 359.578321 442.897009 \nL 357.895909 437.342988 \nL 356.213497 431.949028 \nL 354.531085 426.71824 \nL 352.848673 421.644424 \nL 351.166261 416.721749 \nL 349.483849 411.941747 \nL 347.801437 407.301004 \nL 346.119025 402.797145 \nL 344.436613 398.420666 \nL 342.754201 394.172387 \nL 341.071789 390.039521 \nL 339.389377 386.017747 \nL 337.706965 382.105597 \nL 336.024552 378.305813 \nL 334.34214 374.610167 \nL 332.659728 371.012977 \nL 330.977316 367.518088 \nL 329.294904 364.116644 \nL 327.612492 360.808623 \nL 325.93008 357.590579 \nL 324.247668 354.456736 \nL 322.565256 351.403689 \nL 320.882844 348.428211 \nL 319.200432 345.531079 \nL 317.51802 342.710489 \nL 315.835608 339.959594 \nL 314.153196 337.271654 \nL 312.470784 334.64425 \nL 310.788372 332.078667 \nL 309.105959 329.576504 \nL 307.423547 327.13424 \nL 305.741135 324.749941 \nL 304.058723 322.424094 \nL 302.376311 320.15699 \nL 300.693899 317.940032 \nL 299.011487 315.773037 \nL 297.329075 313.657063 \nL 295.646663 311.582518 \nL 293.964251 309.556198 \nL 292.281839 307.57998 \nL 290.599427 305.647309 \nL 288.917015 303.754254 \nL 287.234603 301.901949 \nL 285.552191 300.088396 \nL 283.869779 298.262184 \nL 282.187367 296.4377 \nL 280.504954 294.646914 \nL 278.822542 292.88584 \nL 277.14013 291.167956 \nL 275.457718 289.489666 \nL 273.775306 287.842292 \nL 272.092894 286.232277 \nL 270.410482 284.661796 \nL 268.72807 283.129149 \nL 267.045658 281.629163 \nL 265.363246 280.156787 \nL 263.680834 278.716089 \nL 261.998422 277.307679 \nL 260.31601 275.925438 \nL 258.633598 274.555687 \nL 256.951186 273.188421 \nL 255.268774 271.813351 \nL 253.586361 270.401085 \nL 251.903949 268.943619 \nL 250.221537 267.396938 \nL 248.539125 265.69311 \nL 246.856713 263.791815 \nL 245.174301 261.692467 \nL 243.491889 259.36452 \nL 241.809477 256.879497 \nL 240.127065 254.232663 \nL 238.444653 251.488966 \nL 236.762241 248.642369 \nL 235.079829 245.602002 \nL 233.397417 242.414535 \nL 231.715005 239.137478 \nL 230.032593 235.786876 \nL 228.350181 232.369018 \nL 226.667769 228.927686 \nL 224.985356 225.475199 \nL 223.302944 222.031765 \nL 221.620532 218.600477 \nL 219.93812 215.180055 \nL 218.255708 211.773318 \nL 216.573296 208.383173 \nL 214.890884 205.02396 \nL 213.208472 201.698934 \nL 211.52606 198.402757 \nL 209.843648 195.140052 \nL 208.161236 191.921846 \nL 206.478824 188.764074 \nL 204.796412 185.642542 \nL 203.114 182.565589 \nL 201.431588 179.544971 \nL 199.749176 176.589457 \nL 198.066764 173.736223 \nL 196.384351 171.286031 \nL 194.701939 170.382627 \nL 193.019527 170.541635 \nL 191.337115 170.982919 \nL 189.654703 171.613452 \nL 187.972291 172.302939 \nL 186.289879 173.025616 \nL 184.607467 173.767147 \nL 182.925055 174.520831 \nL 181.242643 175.286061 \nL 179.560231 176.06227 \nL 177.877819 176.849184 \nL 176.195407 177.646718 \nL 174.512995 178.453694 \nL 172.830583 179.269629 \nL 171.148171 180.094098 \nL 169.465758 180.926687 \nL 167.783346 181.766991 \nL 166.100934 182.614591 \nL 164.418522 183.468307 \nL 162.73611 184.322769 \nL 161.053698 185.175128 \nL 159.371286 186.030044 \nL 157.688874 186.887081 \nL 156.006462 187.746864 \nL 154.32405 188.609953 \nL 152.641638 189.475882 \nL 150.959226 190.344196 \nL 149.276814 191.21623 \nL 147.594402 192.091412 \nL 145.91199 192.970437 \nL 144.229578 193.850795 \nL 142.547166 194.73334 \nL 140.864753 195.618385 \nL 139.182341 196.506441 \nL 137.499929 197.396975 \nL 135.817517 198.289304 \nL 134.135105 199.184207 \nL 132.452693 200.081766 \nL 130.770281 200.981995 \nL 129.087869 201.88354 \nL 127.405457 202.786963 \nL 125.723045 203.691976 \nL 124.040633 204.598799 \nL 122.358221 205.506927 \nL 120.675809 206.416633 \nL 118.993397 207.328181 \nL 117.310985 208.241457 \nL 115.628573 209.155963 \nL 113.94616 210.071416 \nL 112.263748 210.987532 \nL 110.581336 211.904451 \nL 108.898924 212.822504 \nL 107.216512 213.741876 \nL 105.5341 214.662222 \nL 103.851688 215.582977 \nL 102.169276 216.504471 \nL 100.486864 217.426973 \nL 98.804452 218.350377 \nL 97.12204 219.274274 \nL 95.439628 220.199005 \nL 93.757216 221.124702 \nL 92.074804 222.050797 \nL 90.392392 222.977056 \nL 88.70998 223.904298 \nL 87.027568 224.832391 \nL 85.345155 225.761254 \nL 83.662743 226.690766 \nL 81.980331 227.62068 \nL 80.297919 228.551147 \nL 78.615507 229.482044 \nL 76.933095 230.413502 \nL 75.250683 231.345565 \nL 73.568271 232.278074 \nL 71.885859 233.21116 \nL 70.203447 234.144889 \nL 68.521035 235.079148 \nL 66.838623 236.013986 \nL 65.156211 236.949268 \nL 63.473799 237.884976 \nL 61.791387 238.820973 \nL 60.108975 239.756981 \nL 58.426562 240.692115 \nz\n\" style=\"fill:#1f77b4;fill-opacity:0.3;stroke:#1f77b4;stroke-opacity:0.3;\"/>\n   </g>\n   <g id=\"PolyCollection_3\">\n    <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426562 240.333742 \nL 58.426562 240.692115 \nL 60.108975 239.756981 \nL 61.791387 238.820973 \nL 63.473799 237.884976 \nL 65.156211 236.949268 \nL 66.838623 236.013986 \nL 68.521035 235.079148 \nL 70.203447 234.144889 \nL 71.885859 233.21116 \nL 73.568271 232.278074 \nL 75.250683 231.345565 \nL 76.933095 230.413502 \nL 78.615507 229.482044 \nL 80.297919 228.551147 \nL 81.980331 227.62068 \nL 83.662743 226.690766 \nL 85.345155 225.761254 \nL 87.027568 224.832391 \nL 88.70998 223.904298 \nL 90.392392 222.977056 \nL 92.074804 222.050797 \nL 93.757216 221.124702 \nL 95.439628 220.199005 \nL 97.12204 219.274274 \nL 98.804452 218.350377 \nL 100.486864 217.426973 \nL 102.169276 216.504471 \nL 103.851688 215.582977 \nL 105.5341 214.662222 \nL 107.216512 213.741876 \nL 108.898924 212.822504 \nL 110.581336 211.904451 \nL 112.263748 210.987532 \nL 113.94616 210.071416 \nL 115.628573 209.155963 \nL 117.310985 208.241457 \nL 118.993397 207.328181 \nL 120.675809 206.416633 \nL 122.358221 205.506927 \nL 124.040633 204.598799 \nL 125.723045 203.691976 \nL 127.405457 202.786963 \nL 129.087869 201.88354 \nL 130.770281 200.981995 \nL 132.452693 200.081766 \nL 134.135105 199.184207 \nL 135.817517 198.289304 \nL 137.499929 197.396975 \nL 139.182341 196.506441 \nL 140.864753 195.618385 \nL 142.547166 194.73334 \nL 144.229578 193.850795 \nL 145.91199 192.970437 \nL 147.594402 192.091412 \nL 149.276814 191.21623 \nL 150.959226 190.344196 \nL 152.641638 189.475882 \nL 154.32405 188.609953 \nL 156.006462 187.746864 \nL 157.688874 186.887081 \nL 159.371286 186.030044 \nL 161.053698 185.175128 \nL 162.73611 184.322769 \nL 164.418522 183.468307 \nL 166.100934 182.614591 \nL 167.783346 181.766991 \nL 169.465758 180.926687 \nL 171.148171 180.094098 \nL 172.830583 179.269629 \nL 174.512995 178.453694 \nL 176.195407 177.646718 \nL 177.877819 176.849184 \nL 179.560231 176.06227 \nL 181.242643 175.286061 \nL 182.925055 174.520831 \nL 184.607467 173.767147 \nL 186.289879 173.025616 \nL 187.972291 172.302939 \nL 189.654703 171.613452 \nL 191.337115 170.982919 \nL 193.019527 170.541635 \nL 194.701939 170.382627 \nL 196.384351 171.286031 \nL 198.066764 173.736223 \nL 199.749176 176.589457 \nL 201.431588 179.544971 \nL 203.114 182.565589 \nL 204.796412 185.642542 \nL 206.478824 188.764074 \nL 208.161236 191.921846 \nL 209.843648 195.140052 \nL 211.52606 198.402757 \nL 213.208472 201.698934 \nL 214.890884 205.02396 \nL 216.573296 208.383173 \nL 218.255708 211.773318 \nL 219.93812 215.180055 \nL 221.620532 218.600477 \nL 223.302944 222.031765 \nL 224.985356 225.475199 \nL 226.667769 228.927686 \nL 228.350181 232.369018 \nL 230.032593 235.786876 \nL 231.715005 239.137478 \nL 233.397417 242.414535 \nL 235.079829 245.602002 \nL 236.762241 248.642369 \nL 238.444653 251.488966 \nL 240.127065 254.232663 \nL 241.809477 256.879497 \nL 243.491889 259.36452 \nL 245.174301 261.692467 \nL 246.856713 263.791815 \nL 248.539125 265.69311 \nL 250.221537 267.396938 \nL 251.903949 268.943619 \nL 253.586361 270.401085 \nL 255.268774 271.813351 \nL 256.951186 273.188421 \nL 258.633598 274.555687 \nL 260.31601 275.925438 \nL 261.998422 277.307679 \nL 263.680834 278.716089 \nL 265.363246 280.156787 \nL 267.045658 281.629163 \nL 268.72807 283.129149 \nL 270.410482 284.661796 \nL 272.092894 286.232277 \nL 273.775306 287.842292 \nL 275.457718 289.489666 \nL 277.14013 291.167956 \nL 278.822542 292.88584 \nL 280.504954 294.646914 \nL 282.187367 296.4377 \nL 283.869779 298.262184 \nL 285.552191 300.088396 \nL 287.234603 301.901949 \nL 288.917015 303.754254 \nL 290.599427 305.647309 \nL 292.281839 307.57998 \nL 293.964251 309.556198 \nL 295.646663 311.582518 \nL 297.329075 313.657063 \nL 299.011487 315.773037 \nL 300.693899 317.940032 \nL 302.376311 320.15699 \nL 304.058723 322.424094 \nL 305.741135 324.749941 \nL 307.423547 327.13424 \nL 309.105959 329.576504 \nL 310.788372 332.078667 \nL 312.470784 334.64425 \nL 314.153196 337.271654 \nL 315.835608 339.959594 \nL 317.51802 342.710489 \nL 319.200432 345.531079 \nL 320.882844 348.428211 \nL 322.565256 351.403689 \nL 324.247668 354.456736 \nL 325.93008 357.590579 \nL 327.612492 360.808623 \nL 329.294904 364.116644 \nL 330.977316 367.518088 \nL 332.659728 371.012977 \nL 334.34214 374.610167 \nL 336.024552 378.305813 \nL 337.706965 382.105597 \nL 339.389377 386.017747 \nL 341.071789 390.039521 \nL 342.754201 394.172387 \nL 344.436613 398.420666 \nL 346.119025 402.797145 \nL 347.801437 407.301004 \nL 349.483849 411.941747 \nL 351.166261 416.721749 \nL 352.848673 421.644424 \nL 354.531085 426.71824 \nL 356.213497 431.949028 \nL 357.895909 437.342988 \nL 359.578321 442.897009 \nL 361.260733 448.619537 \nL 362.943145 454.521524 \nL 364.625557 460.609105 \nL 366.30797 466.871392 \nL 367.990382 473.331629 \nL 369.672794 479.995063 \nL 371.355206 486.868003 \nL 373.037618 493.959499 \nL 374.72003 501.271581 \nL 376.402442 508.820278 \nL 378.084854 516.612868 \nL 379.767266 524.656243 \nL 381.449678 532.960425 \nL 383.13209 541.531463 \nL 384.814502 550.381106 \nL 386.496914 559.520545 \nL 388.179326 568.958722 \nL 389.861738 578.709159 \nL 391.54415 588.782958 \nL 393.226563 599.191742 \nL 393.226563 -4.827425 \nL 393.226563 -4.827425 \nL 391.54415 4.430947 \nL 389.861738 13.354293 \nL 388.179326 21.954307 \nL 386.496914 30.242041 \nL 384.814502 38.230852 \nL 383.13209 45.929857 \nL 381.449678 53.350095 \nL 379.767266 60.502796 \nL 378.084854 67.394539 \nL 376.402442 74.035293 \nL 374.72003 80.432034 \nL 373.037618 86.591837 \nL 371.355206 92.529519 \nL 369.672794 98.24804 \nL 367.990382 103.756603 \nL 366.30797 109.061524 \nL 364.625557 114.168076 \nL 362.943145 119.09877 \nL 361.260733 123.843796 \nL 359.578321 128.40912 \nL 357.895909 132.805553 \nL 356.213497 137.041346 \nL 354.531085 141.11399 \nL 352.848673 145.029418 \nL 351.166261 148.793387 \nL 349.483849 152.413506 \nL 347.801437 155.893966 \nL 346.119025 159.237434 \nL 344.436613 162.451535 \nL 342.754201 165.537415 \nL 341.071789 168.505791 \nL 339.389377 171.36111 \nL 337.706965 174.10579 \nL 336.024552 176.737654 \nL 334.34214 179.264566 \nL 332.659728 181.691732 \nL 330.977316 184.01658 \nL 329.294904 186.24666 \nL 327.612492 188.382604 \nL 325.93008 190.427637 \nL 324.247668 192.386082 \nL 322.565256 194.262375 \nL 320.882844 196.059874 \nL 319.200432 197.778444 \nL 317.51802 199.41911 \nL 315.835608 200.988705 \nL 314.153196 202.492499 \nL 312.470784 203.9329 \nL 310.788372 205.30932 \nL 309.105959 206.62057 \nL 307.423547 207.870258 \nL 305.741135 209.060172 \nL 304.058723 210.191423 \nL 302.376311 211.263851 \nL 300.693899 212.282762 \nL 299.011487 213.250021 \nL 297.329075 214.165881 \nL 295.646663 215.037308 \nL 293.964251 215.859415 \nL 292.281839 216.629703 \nL 290.599427 217.353232 \nL 288.917015 218.033458 \nL 287.234603 218.670752 \nL 285.552191 219.267605 \nL 283.869779 219.858816 \nL 282.187367 220.431967 \nL 280.504954 220.967676 \nL 278.822542 221.467174 \nL 277.14013 221.921642 \nL 275.457718 222.332423 \nL 273.775306 222.703129 \nL 272.092894 223.031971 \nL 270.410482 223.318507 \nL 268.72807 223.561278 \nL 267.045658 223.75938 \nL 265.363246 223.917187 \nL 263.680834 224.024573 \nL 261.998422 224.086896 \nL 260.31601 224.093749 \nL 258.633598 224.045107 \nL 256.951186 223.917301 \nL 255.268774 223.705311 \nL 253.586361 223.381419 \nL 251.903949 222.941102 \nL 250.221537 222.356234 \nL 248.539125 221.568728 \nL 246.856713 220.591229 \nL 245.174301 219.432245 \nL 243.491889 218.111848 \nL 241.809477 216.648447 \nL 240.127065 215.012562 \nL 238.444653 213.269992 \nL 236.762241 211.434506 \nL 235.079829 209.48663 \nL 233.397417 207.449374 \nL 231.715005 205.32354 \nL 230.032593 203.11973 \nL 228.350181 200.844934 \nL 226.667769 198.52664 \nL 224.985356 196.172034 \nL 223.302944 193.795066 \nL 221.620532 191.401499 \nL 219.93812 188.995847 \nL 218.255708 186.586194 \nL 216.573296 184.166772 \nL 214.890884 181.746255 \nL 213.208472 179.33644 \nL 211.52606 176.933837 \nL 209.843648 174.535228 \nL 208.161236 172.158595 \nL 206.478824 169.818052 \nL 204.796412 167.48674 \nL 203.114 165.176197 \nL 201.431588 162.893222 \nL 199.749176 160.646449 \nL 198.066764 158.478666 \nL 196.384351 156.694851 \nL 194.701939 156.444677 \nL 193.019527 157.238187 \nL 191.337115 158.293834 \nL 189.654703 159.515492 \nL 187.972291 160.767986 \nL 186.289879 162.025658 \nL 184.607467 163.276086 \nL 182.925055 164.514372 \nL 181.242643 165.741096 \nL 179.560231 166.956847 \nL 177.877819 168.162367 \nL 176.195407 169.358531 \nL 174.512995 170.54527 \nL 172.830583 171.723033 \nL 171.148171 172.892261 \nL 169.465758 174.053381 \nL 167.783346 175.206776 \nL 166.100934 176.352724 \nL 164.418522 177.490704 \nL 162.73611 178.616029 \nL 161.053698 179.725973 \nL 159.371286 180.826486 \nL 157.688874 181.917729 \nL 156.006462 183.000888 \nL 154.32405 184.07695 \nL 152.641638 185.145957 \nL 150.959226 186.207916 \nL 149.276814 187.264802 \nL 147.594402 188.316407 \nL 145.91199 189.363725 \nL 144.229578 190.404512 \nL 142.547166 191.440149 \nL 140.864753 192.471305 \nL 139.182341 193.49884 \nL 137.499929 194.522546 \nL 135.817517 195.542 \nL 134.135105 196.558302 \nL 132.452693 197.571754 \nL 130.770281 198.582592 \nL 129.087869 199.589749 \nL 127.405457 200.594044 \nL 125.723045 201.595433 \nL 124.040633 202.594314 \nL 122.358221 203.590357 \nL 120.675809 204.584041 \nL 118.993397 205.575802 \nL 117.310985 206.565702 \nL 115.628573 207.553405 \nL 113.94616 208.538795 \nL 112.263748 209.52174 \nL 110.581336 210.502522 \nL 108.898924 211.481598 \nL 107.216512 212.45928 \nL 105.5341 213.435347 \nL 103.851688 214.409343 \nL 102.169276 215.381728 \nL 100.486864 216.352869 \nL 98.804452 217.322769 \nL 97.12204 218.291122 \nL 95.439628 219.258355 \nL 93.757216 220.224679 \nL 92.074804 221.189633 \nL 90.392392 222.15307 \nL 88.70998 223.115853 \nL 87.027568 224.077926 \nL 85.345155 225.039283 \nL 83.662743 225.999867 \nL 81.980331 226.959493 \nL 80.297919 227.918376 \nL 78.615507 228.876446 \nL 76.933095 229.833901 \nL 75.250683 230.790821 \nL 73.568271 231.747112 \nL 71.885859 232.702949 \nL 70.203447 233.658441 \nL 68.521035 234.613512 \nL 66.838623 235.568266 \nL 65.156211 236.522594 \nL 63.473799 237.476523 \nL 61.791387 238.429952 \nL 60.108975 239.382641 \nL 58.426562 240.333742 \nz\n\" style=\"fill:#ff7f0e;fill-opacity:0.4;stroke:#ff7f0e;stroke-opacity:0.4;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 91.906563 315.39375 \nL 91.906563 43.59375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_2\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m6b36a1f9ed\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"91.906563\" xlink:href=\"#m6b36a1f9ed\" y=\"315.39375\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- −4 -->\n      <defs>\n       <path d=\"M 10.59375 35.5 \nL 73.1875 35.5 \nL 73.1875 27.203125 \nL 10.59375 27.203125 \nz\n\" id=\"DejaVuSans-8722\"/>\n       <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      </defs>\n      <g transform=\"translate(69.793281 345.189062)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_3\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 158.866563 315.39375 \nL 158.866563 43.59375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"158.866563\" xlink:href=\"#m6b36a1f9ed\" y=\"315.39375\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- −2 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(136.753281 345.189062)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_5\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 225.826563 315.39375 \nL 225.826563 43.59375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"225.826563\" xlink:href=\"#m6b36a1f9ed\" y=\"315.39375\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(216.282813 345.189062)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_7\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 292.786563 315.39375 \nL 292.786563 43.59375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"292.786563\" xlink:href=\"#m6b36a1f9ed\" y=\"315.39375\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 2 -->\n      <g transform=\"translate(283.242813 345.189062)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_9\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 359.746563 315.39375 \nL 359.746563 43.59375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"359.746563\" xlink:href=\"#m6b36a1f9ed\" y=\"315.39375\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 4 -->\n      <g transform=\"translate(350.202813 345.189062)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"text_6\">\n     <!-- $x$ -->\n     <defs>\n      <path d=\"M 60.015625 54.6875 \nL 34.90625 27.875 \nL 50.296875 0 \nL 39.984375 0 \nL 28.421875 21.6875 \nL 8.296875 0 \nL -2.59375 0 \nL 24.3125 28.8125 \nL 10.015625 54.6875 \nL 20.3125 54.6875 \nL 30.8125 34.90625 \nL 49.125 54.6875 \nz\n\" id=\"DejaVuSans-Oblique-120\"/>\n     </defs>\n     <g transform=\"translate(216.826563 378.223437)scale(0.3 -0.3)\">\n      <use transform=\"translate(0 0.3125)\" xlink:href=\"#DejaVuSans-Oblique-120\"/>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_11\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426563 292.74375 \nL 393.226562 292.74375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_12\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m14e19ac814\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"58.426563\" xlink:href=\"#m14e19ac814\" y=\"292.74375\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- −4 -->\n      <g transform=\"translate(7.2 304.141406)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_13\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426563 247.44375 \nL 393.226562 247.44375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"58.426563\" xlink:href=\"#m14e19ac814\" y=\"247.44375\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- −2 -->\n      <g transform=\"translate(7.2 258.841406)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_15\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426563 202.14375 \nL 393.226562 202.14375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_16\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"58.426563\" xlink:href=\"#m14e19ac814\" y=\"202.14375\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 0 -->\n      <g transform=\"translate(32.339063 213.541406)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_17\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426563 156.84375 \nL 393.226562 156.84375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_18\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"58.426563\" xlink:href=\"#m14e19ac814\" y=\"156.84375\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 2 -->\n      <g transform=\"translate(32.339063 168.241406)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_19\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426563 111.54375 \nL 393.226562 111.54375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_20\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"58.426563\" xlink:href=\"#m14e19ac814\" y=\"111.54375\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 4 -->\n      <g transform=\"translate(32.339063 122.941406)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_21\">\n      <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426563 66.24375 \nL 393.226562 66.24375 \n\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-opacity:0.3;stroke-width:0.8;\"/>\n     </g>\n     <g id=\"line2d_22\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"58.426563\" xlink:href=\"#m14e19ac814\" y=\"66.24375\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 6 -->\n      <defs>\n       <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      </defs>\n      <g transform=\"translate(32.339063 77.641406)scale(0.3 -0.3)\">\n       <use xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_23\">\n    <path clip-path=\"url(#p3f8296397e)\" d=\"M 58.426562 240.512928 \nL 122.358221 204.548642 \nL 154.32405 186.343451 \nL 169.465758 177.490035 \nL 191.337115 164.638376 \nL 193.019527 163.889911 \nL 194.701939 163.413653 \nL 196.384351 163.990441 \nL 198.066764 166.107444 \nL 201.431588 171.219096 \nL 206.478824 179.291062 \nL 211.52606 187.668297 \nL 219.93812 202.087951 \nL 230.032593 219.453303 \nL 233.397417 224.931954 \nL 236.762241 230.038438 \nL 240.127065 234.622611 \nL 243.491889 238.738183 \nL 245.174301 240.562356 \nL 246.856713 242.191521 \nL 248.539125 243.63092 \nL 250.221537 244.876585 \nL 253.586361 246.891252 \nL 256.951186 248.552861 \nL 261.998422 250.697289 \nL 272.092894 254.632125 \nL 287.234603 260.286352 \nL 312.470784 269.288572 \nL 342.754201 279.854901 \nL 393.226563 297.182159 \nL 393.226563 297.182159 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 58.426563 315.39375 \nL 58.426563 43.59375 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 393.226562 315.39375 \nL 393.226562 43.59375 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 58.426562 315.39375 \nL 393.226563 315.39375 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 58.426562 43.59375 \nL 393.226563 43.59375 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_13\">\n    <!-- MAP Ensemble -->\n    <defs>\n     <path d=\"M 9.8125 72.90625 \nL 24.515625 72.90625 \nL 43.109375 23.296875 \nL 61.8125 72.90625 \nL 76.515625 72.90625 \nL 76.515625 0 \nL 66.890625 0 \nL 66.890625 64.015625 \nL 48.09375 14.015625 \nL 38.1875 14.015625 \nL 19.390625 64.015625 \nL 19.390625 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-77\"/>\n     <path d=\"M 34.1875 63.1875 \nL 20.796875 26.90625 \nL 47.609375 26.90625 \nz\nM 28.609375 72.90625 \nL 39.796875 72.90625 \nL 67.578125 0 \nL 57.328125 0 \nL 50.6875 18.703125 \nL 17.828125 18.703125 \nL 11.1875 0 \nL 0.78125 0 \nz\n\" id=\"DejaVuSans-65\"/>\n     <path d=\"M 19.671875 64.796875 \nL 19.671875 37.40625 \nL 32.078125 37.40625 \nQ 38.96875 37.40625 42.71875 40.96875 \nQ 46.484375 44.53125 46.484375 51.125 \nQ 46.484375 57.671875 42.71875 61.234375 \nQ 38.96875 64.796875 32.078125 64.796875 \nz\nM 9.8125 72.90625 \nL 32.078125 72.90625 \nQ 44.34375 72.90625 50.609375 67.359375 \nQ 56.890625 61.8125 56.890625 51.125 \nQ 56.890625 40.328125 50.609375 34.8125 \nQ 44.34375 29.296875 32.078125 29.296875 \nL 19.671875 29.296875 \nL 19.671875 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-80\"/>\n     <path id=\"DejaVuSans-32\"/>\n     <path d=\"M 9.8125 72.90625 \nL 55.90625 72.90625 \nL 55.90625 64.59375 \nL 19.671875 64.59375 \nL 19.671875 43.015625 \nL 54.390625 43.015625 \nL 54.390625 34.71875 \nL 19.671875 34.71875 \nL 19.671875 8.296875 \nL 56.78125 8.296875 \nL 56.78125 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-69\"/>\n     <path d=\"M 54.890625 33.015625 \nL 54.890625 0 \nL 45.90625 0 \nL 45.90625 32.71875 \nQ 45.90625 40.484375 42.875 44.328125 \nQ 39.84375 48.1875 33.796875 48.1875 \nQ 26.515625 48.1875 22.3125 43.546875 \nQ 18.109375 38.921875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 21.34375 51.125 25.703125 53.5625 \nQ 30.078125 56 35.796875 56 \nQ 45.21875 56 50.046875 50.171875 \nQ 54.890625 44.34375 54.890625 33.015625 \nz\n\" id=\"DejaVuSans-110\"/>\n     <path d=\"M 44.28125 53.078125 \nL 44.28125 44.578125 \nQ 40.484375 46.53125 36.375 47.5 \nQ 32.28125 48.484375 27.875 48.484375 \nQ 21.1875 48.484375 17.84375 46.4375 \nQ 14.5 44.390625 14.5 40.28125 \nQ 14.5 37.15625 16.890625 35.375 \nQ 19.28125 33.59375 26.515625 31.984375 \nL 29.59375 31.296875 \nQ 39.15625 29.25 43.1875 25.515625 \nQ 47.21875 21.78125 47.21875 15.09375 \nQ 47.21875 7.46875 41.1875 3.015625 \nQ 35.15625 -1.421875 24.609375 -1.421875 \nQ 20.21875 -1.421875 15.453125 -0.5625 \nQ 10.6875 0.296875 5.421875 2 \nL 5.421875 11.28125 \nQ 10.40625 8.6875 15.234375 7.390625 \nQ 20.0625 6.109375 24.8125 6.109375 \nQ 31.15625 6.109375 34.5625 8.28125 \nQ 37.984375 10.453125 37.984375 14.40625 \nQ 37.984375 18.0625 35.515625 20.015625 \nQ 33.0625 21.96875 24.703125 23.78125 \nL 21.578125 24.515625 \nQ 13.234375 26.265625 9.515625 29.90625 \nQ 5.8125 33.546875 5.8125 39.890625 \nQ 5.8125 47.609375 11.28125 51.796875 \nQ 16.75 56 26.8125 56 \nQ 31.78125 56 36.171875 55.265625 \nQ 40.578125 54.546875 44.28125 53.078125 \nz\n\" id=\"DejaVuSans-115\"/>\n     <path d=\"M 56.203125 29.59375 \nL 56.203125 25.203125 \nL 14.890625 25.203125 \nQ 15.484375 15.921875 20.484375 11.0625 \nQ 25.484375 6.203125 34.421875 6.203125 \nQ 39.59375 6.203125 44.453125 7.46875 \nQ 49.3125 8.734375 54.109375 11.28125 \nL 54.109375 2.78125 \nQ 49.265625 0.734375 44.1875 -0.34375 \nQ 39.109375 -1.421875 33.890625 -1.421875 \nQ 20.796875 -1.421875 13.15625 6.1875 \nQ 5.515625 13.8125 5.515625 26.8125 \nQ 5.515625 40.234375 12.765625 48.109375 \nQ 20.015625 56 32.328125 56 \nQ 43.359375 56 49.78125 48.890625 \nQ 56.203125 41.796875 56.203125 29.59375 \nz\nM 47.21875 32.234375 \nQ 47.125 39.59375 43.09375 43.984375 \nQ 39.0625 48.390625 32.421875 48.390625 \nQ 24.90625 48.390625 20.390625 44.140625 \nQ 15.875 39.890625 15.1875 32.171875 \nz\n\" id=\"DejaVuSans-101\"/>\n     <path d=\"M 52 44.1875 \nQ 55.375 50.25 60.0625 53.125 \nQ 64.75 56 71.09375 56 \nQ 79.640625 56 84.28125 50.015625 \nQ 88.921875 44.046875 88.921875 33.015625 \nL 88.921875 0 \nL 79.890625 0 \nL 79.890625 32.71875 \nQ 79.890625 40.578125 77.09375 44.375 \nQ 74.3125 48.1875 68.609375 48.1875 \nQ 61.625 48.1875 57.5625 43.546875 \nQ 53.515625 38.921875 53.515625 30.90625 \nL 53.515625 0 \nL 44.484375 0 \nL 44.484375 32.71875 \nQ 44.484375 40.625 41.703125 44.40625 \nQ 38.921875 48.1875 33.109375 48.1875 \nQ 26.21875 48.1875 22.15625 43.53125 \nQ 18.109375 38.875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 21.1875 51.21875 25.484375 53.609375 \nQ 29.78125 56 35.6875 56 \nQ 41.65625 56 45.828125 52.96875 \nQ 50 49.953125 52 44.1875 \nz\n\" id=\"DejaVuSans-109\"/>\n     <path d=\"M 48.6875 27.296875 \nQ 48.6875 37.203125 44.609375 42.84375 \nQ 40.53125 48.484375 33.40625 48.484375 \nQ 26.265625 48.484375 22.1875 42.84375 \nQ 18.109375 37.203125 18.109375 27.296875 \nQ 18.109375 17.390625 22.1875 11.75 \nQ 26.265625 6.109375 33.40625 6.109375 \nQ 40.53125 6.109375 44.609375 11.75 \nQ 48.6875 17.390625 48.6875 27.296875 \nz\nM 18.109375 46.390625 \nQ 20.953125 51.265625 25.265625 53.625 \nQ 29.59375 56 35.59375 56 \nQ 45.5625 56 51.78125 48.09375 \nQ 58.015625 40.1875 58.015625 27.296875 \nQ 58.015625 14.40625 51.78125 6.484375 \nQ 45.5625 -1.421875 35.59375 -1.421875 \nQ 29.59375 -1.421875 25.265625 0.953125 \nQ 20.953125 3.328125 18.109375 8.203125 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 75.984375 \nL 18.109375 75.984375 \nz\n\" id=\"DejaVuSans-98\"/>\n     <path d=\"M 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 0 \nL 9.421875 0 \nz\n\" id=\"DejaVuSans-108\"/>\n    </defs>\n    <g transform=\"translate(78.395313 37.59375)scale(0.4 -0.4)\">\n     <use xlink:href=\"#DejaVuSans-77\"/>\n     <use x=\"86.279297\" xlink:href=\"#DejaVuSans-65\"/>\n     <use x=\"154.6875\" xlink:href=\"#DejaVuSans-80\"/>\n     <use x=\"214.990234\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"246.777344\" xlink:href=\"#DejaVuSans-69\"/>\n     <use x=\"309.960938\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"373.339844\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"425.439453\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"486.962891\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"584.375\" xlink:href=\"#DejaVuSans-98\"/>\n     <use x=\"647.851562\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"675.634766\" xlink:href=\"#DejaVuSans-101\"/>\n    </g>\n   </g>\n   <g id=\"legend_1\">\n    <g id=\"patch_7\">\n     <path d=\"M 78.226562 80.55375 \nL 122.226562 80.55375 \nL 122.226562 65.15375 \nL 78.226562 65.15375 \nz\n\" style=\"fill:#1f77b4;opacity:0.3;stroke:#1f77b4;stroke-linejoin:miter;\"/>\n    </g>\n    <g id=\"text_14\">\n     <!-- $\\sigma(y'|x')$ -->\n     <defs>\n      <path d=\"M 34.671875 47.5625 \nQ 27.25 47.5625 22.21875 42.1875 \nQ 16.890625 36.578125 15.140625 27.296875 \nQ 13.1875 17.484375 16.3125 11.8125 \nQ 19.390625 6.203125 26.65625 6.203125 \nQ 33.84375 6.203125 39.109375 11.859375 \nQ 44.4375 17.53125 46.34375 27.296875 \nQ 48.046875 36.234375 45.015625 42.1875 \nQ 42.1875 47.5625 34.671875 47.5625 \nz\nM 36.078125 54.734375 \nL 65.921875 54.6875 \nL 64.15625 45.703125 \nL 54.109375 45.703125 \nQ 57.90625 38.09375 55.859375 27.296875 \nQ 53.21875 13.875 45.0625 6.25 \nQ 36.859375 -1.421875 25.140625 -1.421875 \nQ 13.375 -1.421875 8.203125 6.25 \nQ 3.03125 13.875 5.671875 27.296875 \nQ 8.25 40.765625 16.40625 48.390625 \nQ 23.1875 54.734375 36.078125 54.734375 \nz\n\" id=\"DejaVuSans-Oblique-963\"/>\n      <path d=\"M 31 75.875 \nQ 24.46875 64.65625 21.28125 53.65625 \nQ 18.109375 42.671875 18.109375 31.390625 \nQ 18.109375 20.125 21.3125 9.0625 \nQ 24.515625 -2 31 -13.1875 \nL 23.1875 -13.1875 \nQ 15.875 -1.703125 12.234375 9.375 \nQ 8.59375 20.453125 8.59375 31.390625 \nQ 8.59375 42.28125 12.203125 53.3125 \nQ 15.828125 64.359375 23.1875 75.875 \nz\n\" id=\"DejaVuSans-40\"/>\n      <path d=\"M 24.8125 -5.078125 \nQ 18.5625 -15.578125 14.625 -18.1875 \nQ 10.6875 -20.796875 4.59375 -20.796875 \nL -2.484375 -20.796875 \nL -0.984375 -13.28125 \nL 4.203125 -13.28125 \nQ 7.953125 -13.28125 10.59375 -11.234375 \nQ 13.234375 -9.1875 16.5 -3.21875 \nL 19.28125 2 \nL 7.171875 54.6875 \nL 16.703125 54.6875 \nL 25.78125 12.796875 \nL 50.875 54.6875 \nL 60.296875 54.6875 \nz\n\" id=\"DejaVuSans-Oblique-121\"/>\n      <path d=\"M 3.515625 5.421875 \nQ 2.875 5.609375 2.875 6.390625 \nL 15.09375 51.8125 \nQ 15.671875 53.65625 17.078125 54.78125 \nQ 18.5 55.90625 20.3125 55.90625 \nQ 22.65625 55.90625 24.4375 54.359375 \nQ 26.21875 52.828125 26.21875 50.484375 \nQ 26.21875 49.46875 25.6875 48.1875 \nL 7.625 4.984375 \nQ 7.28125 4.296875 6.6875 4.296875 \nQ 6.15625 4.296875 5 4.78125 \nQ 3.859375 5.28125 3.515625 5.421875 \nz\n\" id=\"Cmsy10-48\"/>\n      <path d=\"M 21 76.421875 \nL 21 -23.578125 \nL 12.703125 -23.578125 \nL 12.703125 76.421875 \nz\n\" id=\"DejaVuSans-124\"/>\n      <path d=\"M 8.015625 75.875 \nL 15.828125 75.875 \nQ 23.140625 64.359375 26.78125 53.3125 \nQ 30.421875 42.28125 30.421875 31.390625 \nQ 30.421875 20.453125 26.78125 9.375 \nQ 23.140625 -1.703125 15.828125 -13.1875 \nL 8.015625 -13.1875 \nQ 14.5 -2 17.703125 9.0625 \nQ 20.90625 20.125 20.90625 31.390625 \nQ 20.90625 42.671875 17.703125 53.65625 \nQ 14.5 64.65625 8.015625 75.875 \nz\n\" id=\"DejaVuSans-41\"/>\n     </defs>\n     <g transform=\"translate(139.826562 80.55375)scale(0.22 -0.22)\">\n      <use transform=\"translate(0 0.584375)\" xlink:href=\"#DejaVuSans-Oblique-963\"/>\n      <use transform=\"translate(63.378906 0.584375)\" xlink:href=\"#DejaVuSans-40\"/>\n      <use transform=\"translate(102.392578 0.584375)\" xlink:href=\"#DejaVuSans-Oblique-121\"/>\n      <use transform=\"translate(166.038411 38.865625)scale(0.7)\" xlink:href=\"#Cmsy10-48\"/>\n      <use transform=\"translate(188.015951 0.584375)\" xlink:href=\"#DejaVuSans-124\"/>\n      <use transform=\"translate(221.707357 0.584375)\" xlink:href=\"#DejaVuSans-Oblique-120\"/>\n      <use transform=\"translate(285.35319 38.865625)scale(0.7)\" xlink:href=\"#Cmsy10-48\"/>\n      <use transform=\"translate(307.330729 0.584375)\" xlink:href=\"#DejaVuSans-41\"/>\n     </g>\n    </g>\n    <g id=\"patch_8\">\n     <path d=\"M 78.226562 116.85375 \nL 122.226562 116.85375 \nL 122.226562 101.45375 \nL 78.226562 101.45375 \nz\n\" style=\"fill:#ff7f0e;opacity:0.4;stroke:#ff7f0e;stroke-linejoin:miter;\"/>\n    </g>\n    <g id=\"text_15\">\n     <!-- $\\mathbb{E}_{q(\\mathbf{w})}[\\sigma^2]^{1/2}$ -->\n     <defs>\n      <path d=\"M 66.40625 65.296875 \nL 65.5 61.59375 \nL 33.59375 61.59375 \nL 26.703125 35.40625 \nL 54.90625 35.40625 \nL 53.796875 31.703125 \nL 25.703125 31.703125 \nL 18.203125 3.703125 \nL 53.796875 3.703125 \nL 53 0 \nL 1.703125 0 \nL 19.203125 65.296875 \nz\nM 29.90625 61.59375 \nL 22.09375 61.59375 \nL 6.5 3.703125 \nL 14.5 3.703125 \nz\n\" id=\"STIXNonUnicode-Italic-57686\"/>\n      <path d=\"M 41.703125 8.203125 \nQ 38.09375 3.46875 33.171875 1.015625 \nQ 28.265625 -1.421875 22.3125 -1.421875 \nQ 14.015625 -1.421875 9.296875 4.171875 \nQ 4.59375 9.765625 4.59375 19.578125 \nQ 4.59375 27.484375 7.5 34.859375 \nQ 10.40625 42.234375 15.828125 48.09375 \nQ 19.34375 51.90625 23.90625 53.953125 \nQ 28.46875 56 33.5 56 \nQ 39.546875 56 43.453125 53.609375 \nQ 47.359375 51.21875 49.125 46.390625 \nL 50.6875 54.59375 \nL 59.71875 54.59375 \nL 45.125 -20.609375 \nL 36.078125 -20.609375 \nz\nM 13.921875 20.90625 \nQ 13.921875 13.671875 16.9375 9.890625 \nQ 19.96875 6.109375 25.6875 6.109375 \nQ 34.1875 6.109375 40.1875 14.234375 \nQ 46.1875 22.359375 46.1875 33.984375 \nQ 46.1875 41.015625 43.078125 44.75 \nQ 39.984375 48.484375 34.1875 48.484375 \nQ 29.9375 48.484375 26.3125 46.5 \nQ 22.703125 44.53125 20.015625 40.71875 \nQ 17.1875 36.71875 15.546875 31.34375 \nQ 13.921875 25.984375 13.921875 20.90625 \nz\n\" id=\"DejaVuSans-Oblique-113\"/>\n      <path d=\"M 3.515625 54.6875 \nL 20.515625 54.6875 \nL 29.6875 17 \nL 38.921875 54.6875 \nL 53.515625 54.6875 \nL 62.703125 17.390625 \nL 71.921875 54.6875 \nL 88.921875 54.6875 \nL 74.515625 0 \nL 55.421875 0 \nL 46.1875 37.59375 \nL 37.015625 0 \nL 17.921875 0 \nz\n\" id=\"DejaVuSans-Bold-119\"/>\n      <path d=\"M 8.59375 75.984375 \nL 29.296875 75.984375 \nL 29.296875 69 \nL 17.578125 69 \nL 17.578125 -6.203125 \nL 29.296875 -6.203125 \nL 29.296875 -13.1875 \nL 8.59375 -13.1875 \nz\n\" id=\"DejaVuSans-91\"/>\n      <path d=\"M 30.421875 75.984375 \nL 30.421875 -13.1875 \nL 9.71875 -13.1875 \nL 9.71875 -6.203125 \nL 21.390625 -6.203125 \nL 21.390625 69 \nL 9.71875 69 \nL 9.71875 75.984375 \nz\n\" id=\"DejaVuSans-93\"/>\n      <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      <path d=\"M 25.390625 72.90625 \nL 33.6875 72.90625 \nL 8.296875 -9.28125 \nL 0 -9.28125 \nz\n\" id=\"DejaVuSans-47\"/>\n     </defs>\n     <g transform=\"translate(139.826562 116.85375)scale(0.22 -0.22)\">\n      <use transform=\"translate(0 0.765625)\" xlink:href=\"#STIXNonUnicode-Italic-57686\"/>\n      <use transform=\"translate(64.857025 -15.640625)scale(0.7)\" xlink:href=\"#DejaVuSans-Oblique-113\"/>\n      <use transform=\"translate(109.290619 -15.640625)scale(0.7)\" xlink:href=\"#DejaVuSans-40\"/>\n      <use transform=\"translate(136.600189 -15.640625)scale(0.7)\" xlink:href=\"#DejaVuSans-Bold-119\"/>\n      <use transform=\"translate(201.268158 -15.640625)scale(0.7)\" xlink:href=\"#DejaVuSans-41\"/>\n      <use transform=\"translate(231.312103 0.765625)\" xlink:href=\"#DejaVuSans-91\"/>\n      <use transform=\"translate(270.325775 0.765625)\" xlink:href=\"#DejaVuSans-Oblique-963\"/>\n      <use transform=\"translate(338.17739 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-50\"/>\n      <use transform=\"translate(385.447898 0.765625)\" xlink:href=\"#DejaVuSans-93\"/>\n      <use transform=\"translate(425.418601 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-49\"/>\n      <use transform=\"translate(469.954733 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-47\"/>\n      <use transform=\"translate(493.505905 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-50\"/>\n     </g>\n    </g>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p3f8296397e\">\n   <rect height=\"271.8\" width=\"334.8\" x=\"58.426563\" y=\"43.59375\"/>\n  </clipPath>\n </defs>\n</svg>\n"},"metadata":{"tags":[]}}]},{"cell_type":"markdown","metadata":{"id":"QBBlvk1JylkX","colab_type":"text"},"source":["# UCI dataset fitting"]},{"cell_type":"code","metadata":{"id":"nQFXw0se_4bE","colab_type":"code","colab":{}},"source":["class Net_UCI(torch.nn.Module):\n","    def __init__(self, n_feature, n_hidden, n_output, learn_rate, weight_decay):\n","        super(Net_UCI, self).__init__()\n","        self.hidden1 = torch.nn.Linear(n_feature, n_hidden)\n","        self.hidden2 = torch.nn.Linear(n_hidden, n_hidden)\n","        self.predict = torch.nn.Linear(n_hidden, 2*n_output)\n","        \n","        self.loss_func = log_gaussian_loss\n","        self.optimizer = torch.optim.SGD(self.parameters(), lr=learn_rate, weight_decay=weight_decay)\n","        \n","    def forward(self, x):\n","        x = F.relu(self.hidden1(x))\n","        x = F.relu(self.hidden2(x))\n","        x = self.predict(x)\n","        return x\n","    \n","    def fit(self, x, y):\n","        x, y = to_variable(var=(x, y), cuda=True)\n","        \n","        # reset gradient and total loss\n","        self.optimizer.zero_grad()\n","        \n","        output = self.forward(x)\n","        loss = self.loss_func(output[:, :1], y, output[:, 1:].exp(), 1)/x.shape[0]\n","        \n","        loss.backward()\n","        self.optimizer.step()\n","\n","        return loss"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"j0gfEDv6KgSr","colab_type":"code","colab":{}},"source":["def train_ensemble(data, n_splits, num_epochs, num_nets, num_hidden, learn_rate, weight_decay, data_fraction, log_every):\n","    \n","    kf = KFold(n_splits=n_splits)\n","    in_dim = data.shape[1] - 1\n","    train_logliks, test_logliks = [], []\n","    train_rmses, test_rmses = [], []\n","\n","    for j, idx in enumerate(kf.split(data)):\n","        train_index, test_index = idx\n","\n","        x_train, y_train = data[train_index, :in_dim], data[train_index, in_dim:]\n","        x_test, y_test = data[test_index, :in_dim], data[test_index, in_dim:]\n","\n","        x_means, x_stds = x_train.mean(axis = 0), x_train.var(axis = 0)**0.5\n","        y_means, y_stds = y_train.mean(axis = 0), y_train.var(axis = 0)**0.5\n","\n","        x_train = (x_train - x_means)/x_stds\n","        y_train = (y_train - y_means)/y_stds\n","\n","        x_test = (x_test - x_means)/x_stds\n","        y_test = (y_test - y_means)/y_stds\n","\n","        batch_size = len(x_train)\n","\n","        fit_loss_train = np.zeros(num_epochs)\n","        best_net, best_loss = None, float('inf')\n","        nets = []\n","\n","        for n in range(num_nets):\n","            net = Net_UCI(n_feature=in_dim, n_hidden=num_hidden, n_output=1, learn_rate=learn_rate, weight_decay=weight_decay).cuda()\n","\n","            sub_idx = np.random.choice(np.arange(0, len(x_train)), size = (int(len(x_train)*data_fraction),), replace=True)\n","            x_train_sub, y_train_sub = x_train[sub_idx], y_train[sub_idx]\n","\n","            for i in range(num_epochs):\n","\n","                loss = net.fit(x_train_sub, y_train_sub)\n","\n","                if log_every is not False and (i % log_every == 0 or i == num_epochs - 1) and len(nets) > 0:\n","                    train_loss, train_rmse = eval_ensemble(x_train, y_train, nets)\n","                    test_loss, test_rmse = eval_ensemble(x_test, y_test, nets)\n","                    print('Epoch %3d, network %2d, Loss train/test %.3f/%.3f, RMSE train/test %.3f/%.3f' % \\\n","                          (i+1, len(nets), train_loss.cpu().data.numpy(), test_loss.cpu().data.numpy(),\n","                          train_rmse.cpu().data.numpy(), test_rmse.cpu().data.numpy()))\n","\n","            nets.append(copy.deepcopy(net))\n","\n","\n","        train_loss, train_rmse = eval_ensemble(x_train, y_train, nets)\n","        test_loss, test_rmse = eval_ensemble(x_test, y_test, nets)\n","\n","        train_logliks.append(-train_loss.cpu().data.numpy() - np.log(y_stds)[0])\n","        test_logliks.append(-test_loss.cpu().data.numpy() - np.log(y_stds)[0])\n","\n","        train_rmses.append(y_stds[0]*train_rmse.cpu().data.numpy())\n","        test_rmses.append(y_stds[0]*test_rmse.cpu().data.numpy())\n","\n","    print('Train log. lik. = %7.3f +/- %.3f' % (np.array(train_logliks).mean(), np.array(train_logliks).var()**0.5))\n","    print('Test  log. lik. = %7.3f +/- %.3f' % (np.array(test_logliks).mean(), np.array(test_logliks).var()**0.5))\n","    print('Train RMSE      = %7.3f +/- %.3f' % (np.array(train_rmses).mean(), np.array(train_rmses).var()**0.5))\n","    print('Test  RMSE      = %7.3f +/- %.3f' % (np.array(test_rmses).mean(), np.array(test_rmses).var()**0.5))\n","    \n","    return nets"],"execution_count":0,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"HXpA9VBGMsxc","colab_type":"text"},"source":["# Housing dataset"]},{"cell_type":"code","metadata":{"colab_type":"code","id":"cOq4tM_PLRUV","outputId":"0944a85c-9b8e-4529-9dca-402e6cf2c2df","executionInfo":{"status":"ok","timestamp":1558132775899,"user_tz":-60,"elapsed":3717,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":204}},"source":["np.random.seed(0)\n","!wget \"https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data\" --no-check-certificate \n","data = pd.read_csv('housing.data', header=0, delimiter=\"\\s+\").values\n","data = data[np.random.permutation(np.arange(len(data)))]"],"execution_count":32,"outputs":[{"output_type":"stream","text":["--2019-05-17 22:39:33--  https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data\n","Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n","Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 49082 (48K) [application/x-httpd-php]\n","Saving to: ‘housing.data.28’\n","\n","housing.data.28     100%[===================>]  47.93K   170KB/s    in 0.3s    \n","\n","2019-05-17 22:39:34 (170 KB/s) - ‘housing.data.28’ saved [49082/49082]\n","\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"94197806-7d5a-4c80-f7b8-86a1c55933af","executionInfo":{"status":"ok","timestamp":1558132799534,"user_tz":-60,"elapsed":24987,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"KE6ieDPHloUg","colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["ensemble = train_ensemble(data=data, n_splits=10, num_epochs=100, num_nets=20, num_hidden=100,\n","                          learn_rate=1e-2, weight_decay=1e-2, data_fraction=0.8, log_every=False)"],"execution_count":33,"outputs":[{"output_type":"stream","text":["Train log. lik. =  -2.040 +/- 0.010\n","Test  log. lik. =  -2.080 +/- 0.151\n","Train RMSE      =   5.844 +/- 0.123\n","Test  RMSE      =   5.807 +/- 1.171\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"colab_type":"text","id":"vnGD_RefRxkZ"},"source":["# Concrete compressive dataset"]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"8ff3f494-4060-4010-c878-c37e16195d7b","executionInfo":{"status":"ok","timestamp":1558132832815,"user_tz":-60,"elapsed":3139,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"s5G3-z_jRxkZ","colab":{"base_uri":"https://localhost:8080/","height":221}},"source":["np.random.seed(0)\n","!wget \"https://archive.ics.uci.edu/ml/machine-learning-databases/concrete/compressive/Concrete_Data.xls\" --no-check-certificate\n","data = pd.read_excel('Concrete_Data.xls', header=0, delimiter=\"\\s+\").values\n","data = data[np.random.permutation(np.arange(len(data)))]\n","data.shape"],"execution_count":34,"outputs":[{"output_type":"stream","text":["--2019-05-17 22:40:30--  https://archive.ics.uci.edu/ml/machine-learning-databases/concrete/compressive/Concrete_Data.xls\n","Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n","Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 124928 (122K) [application/x-httpd-php]\n","Saving to: ‘Concrete_Data.xls.6’\n","\n","Concrete_Data.xls.6 100%[===================>] 122.00K   290KB/s    in 0.4s    \n","\n","2019-05-17 22:40:31 (290 KB/s) - ‘Concrete_Data.xls.6’ saved [124928/124928]\n","\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["(1030, 9)"]},"metadata":{"tags":[]},"execution_count":34}]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"b8c8dd99-6461-48b1-db91-880546b88f5a","executionInfo":{"status":"ok","timestamp":1558132997294,"user_tz":-60,"elapsed":24419,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"Sij7vIlqRxke","colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["ensemble = train_ensemble(data=data, n_splits=10, num_epochs=100, num_nets=20, num_hidden=100,\n","                          learn_rate=1e-1, weight_decay=0*1e-2, data_fraction=0.8, log_every=False)"],"execution_count":38,"outputs":[{"output_type":"stream","text":["Train log. lik. =  -2.849 +/- 0.085\n","Test  log. lik. =  -2.864 +/- 0.087\n","Train RMSE      =   9.078 +/- 0.481\n","Test  RMSE      =   9.407 +/- 0.969\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"colab_type":"text","id":"uxatwTIqVrZ1"},"source":["# Energy efficiency dataset"]},{"cell_type":"code","metadata":{"colab_type":"code","id":"pZDQX5l3ZfLV","outputId":"9e2d1f8e-7436-46a3-fa8d-413dcc08bb55","executionInfo":{"status":"ok","timestamp":1558131288095,"user_tz":-60,"elapsed":43829,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":221}},"source":["np.random.seed(0)\n","!wget \"http://archive.ics.uci.edu/ml/machine-learning-databases/00242/ENB2012_data.xlsx\" --no-check-certificate\n","data = pd.read_excel('ENB2012_data.xlsx', header=0, delimiter=\"\\s+\").values\n","data = data[np.random.permutation(np.arange(len(data)))]\n","data.shape"],"execution_count":21,"outputs":[{"output_type":"stream","text":["--2019-05-17 22:14:45--  http://archive.ics.uci.edu/ml/machine-learning-databases/00242/ENB2012_data.xlsx\n","Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n","Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:80... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 76189 (74K) [application/x-httpd-php]\n","Saving to: ‘ENB2012_data.xlsx.1’\n","\n","\rENB2012_data.xlsx.1   0%[                    ]       0  --.-KB/s               \rENB2012_data.xlsx.1  64%[===========>        ]  47.70K   150KB/s               \rENB2012_data.xlsx.1 100%[===================>]  74.40K   234KB/s    in 0.3s    \n","\n","2019-05-17 22:14:46 (234 KB/s) - ‘ENB2012_data.xlsx.1’ saved [76189/76189]\n","\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["(768, 10)"]},"metadata":{"tags":[]},"execution_count":21}]},{"cell_type":"code","metadata":{"colab_type":"code","id":"ajazc6zeZfLY","outputId":"5c14187a-7a26-4109-a796-8ac6c16a873a","executionInfo":{"status":"ok","timestamp":1558131311932,"user_tz":-60,"elapsed":64479,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["ensemble = train_ensemble(data=data, n_splits=10, num_epochs=100, num_nets=20, num_hidden=100,\n","                          learn_rate=1e-2, weight_decay=1e-2, data_fraction=0.8, log_every=False)"],"execution_count":22,"outputs":[{"output_type":"stream","text":["Train log. lik. =  -1.490 +/- 0.113\n","Test  log. lik. =  -1.501 +/- 0.107\n","Train RMSE      =   2.633 +/- 0.121\n","Test  RMSE      =   2.638 +/- 0.269\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"vFsWDzx8NSry","colab_type":"text"},"source":["# Power dataset"]},{"cell_type":"code","metadata":{"id":"hzdZLChPNQ9X","colab_type":"code","outputId":"1e30e1df-8735-4a41-d6e0-effb1bbaa033","executionInfo":{"status":"ok","timestamp":1558131318963,"user_tz":-60,"elapsed":65571,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":221}},"source":["np.random.seed(0)\n","!wget \"https://archive.ics.uci.edu/ml/machine-learning-databases/00294/CCPP.zip\" --no-check-certificate \n","zipped = zipfile.ZipFile(\"CCPP.zip\")\n","data = pd.read_excel(zipped.open('CCPP/Folds5x2_pp.xlsx'), header=0, delimiter=\"\\t\").values\n","np.random.shuffle(data)\n","data.shape"],"execution_count":23,"outputs":[{"output_type":"stream","text":["--2019-05-17 22:15:13--  https://archive.ics.uci.edu/ml/machine-learning-databases/00294/CCPP.zip\n","Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n","Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 3674852 (3.5M) [application/x-httpd-php]\n","Saving to: ‘CCPP.zip.1’\n","\n","CCPP.zip.1          100%[===================>]   3.50M  3.13MB/s    in 1.1s    \n","\n","2019-05-17 22:15:14 (3.13 MB/s) - ‘CCPP.zip.1’ saved [3674852/3674852]\n","\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["(9568, 5)"]},"metadata":{"tags":[]},"execution_count":23}]},{"cell_type":"code","metadata":{"id":"ld95mVAKyvo9","colab_type":"code","outputId":"9dd205d5-b252-4e35-cf7b-659717aaeb3e","executionInfo":{"status":"ok","timestamp":1558131345833,"user_tz":-60,"elapsed":89283,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["ensemble = train_ensemble(data=data, n_splits=10, num_epochs=100, num_nets=20, num_hidden=100,\n","                          learn_rate=1e-2, weight_decay=1e-2, data_fraction=0.8, log_every=False)"],"execution_count":24,"outputs":[{"output_type":"stream","text":["Train log. lik. =  -2.034 +/- 0.012\n","Test  log. lik. =  -2.038 +/- 0.020\n","Train RMSE      =   4.498 +/- 0.053\n","Test  RMSE      =   4.500 +/- 0.147\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"colab_type":"text","id":"HRPICBiXCegI"},"source":["# Red wine dataset"]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"6f3c7d92-a720-4d9f-899d-dc4663364982","executionInfo":{"status":"ok","timestamp":1558131353205,"user_tz":-60,"elapsed":96028,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"KOqgIBXcCegJ","colab":{"base_uri":"https://localhost:8080/","height":221}},"source":["np.random.seed(0)\n","!wget \"https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv\" --no-check-certificate \n","data = pd.read_csv('winequality-red.csv', header=1, delimiter=';').values\n","data = data[np.random.permutation(np.arange(len(data)))]\n","data.shape"],"execution_count":25,"outputs":[{"output_type":"stream","text":["--2019-05-17 22:15:47--  https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv\n","Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n","Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 84199 (82K) [application/x-httpd-php]\n","Saving to: ‘winequality-red.csv.2’\n","\n","winequality-red.csv 100%[===================>]  82.23K   291KB/s    in 0.3s    \n","\n","2019-05-17 22:15:47 (291 KB/s) - ‘winequality-red.csv.2’ saved [84199/84199]\n","\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["(1598, 12)"]},"metadata":{"tags":[]},"execution_count":25}]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"f61b48c7-5fc0-4a5c-930a-7b081cbf7283","executionInfo":{"status":"ok","timestamp":1558131378500,"user_tz":-60,"elapsed":118609,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"h8gWjBbKCegM","colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["ensemble = train_ensemble(data=data, n_splits=10, num_epochs=100, num_nets=20, num_hidden=100,\n","                          learn_rate=1e-2, weight_decay=1e-2, data_fraction=0.8, log_every=False)"],"execution_count":26,"outputs":[{"output_type":"stream","text":["Train log. lik. =  -0.141 +/- 0.011\n","Test  log. lik. =  -0.152 +/- 0.086\n","Train RMSE      =   0.719 +/- 0.007\n","Test  RMSE      =   0.719 +/- 0.069\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"colab_type":"text","id":"PVZw0uJzDgdy"},"source":["# Yacht dataset"]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"2f1406b1-341c-4490-996f-27317e9905c5","executionInfo":{"status":"ok","timestamp":1558131382621,"user_tz":-60,"elapsed":119869,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"ja_kIet3Dgdz","colab":{"base_uri":"https://localhost:8080/","height":221}},"source":["np.random.seed(0)\n","!wget \"http://archive.ics.uci.edu/ml/machine-learning-databases/00243/yacht_hydrodynamics.data\" --no-check-certificate \n","data = pd.read_csv('yacht_hydrodynamics.data', header=1, delimiter='\\s+').values\n","data = data[np.random.permutation(np.arange(len(data)))]\n","data.shape"],"execution_count":27,"outputs":[{"output_type":"stream","text":["--2019-05-17 22:16:19--  http://archive.ics.uci.edu/ml/machine-learning-databases/00243/yacht_hydrodynamics.data\n","Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n","Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:80... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 11487 (11K) [application/x-httpd-php]\n","Saving to: ‘yacht_hydrodynamics.data.2’\n","\n","\r          yacht_hyd   0%[                    ]       0  --.-KB/s               \ryacht_hydrodynamics 100%[===================>]  11.22K  --.-KB/s    in 0s      \n","\n","2019-05-17 22:16:19 (311 MB/s) - ‘yacht_hydrodynamics.data.2’ saved [11487/11487]\n","\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["(306, 7)"]},"metadata":{"tags":[]},"execution_count":27}]},{"cell_type":"code","metadata":{"colab_type":"code","outputId":"71dce1a6-f1e7-45fd-9fba-440605233b07","executionInfo":{"status":"ok","timestamp":1558131406076,"user_tz":-60,"elapsed":140764,"user":{"displayName":"Stratis Markou","photoUrl":"","userId":"09754366312766083286"}},"id":"clxNDH6dDgd3","colab":{"base_uri":"https://localhost:8080/","height":85}},"source":["ensemble = train_ensemble(data=data, n_splits=10, num_epochs=100, num_nets=20, num_hidden=100,\n","                          learn_rate=1e-2, weight_decay=1e-2, data_fraction=0.8, log_every=False)"],"execution_count":28,"outputs":[{"output_type":"stream","text":["Train log. lik. =  -2.503 +/- 0.112\n","Test  log. lik. =  -2.540 +/- 0.114\n","Train RMSE      =  11.073 +/- 0.250\n","Test  RMSE      =  10.882 +/- 2.943\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"1NwNZ9WgBkfp","colab_type":"code","colab":{}},"source":[""],"execution_count":0,"outputs":[]}]}